简体   繁体   English

如何更改拾色器的 position (JavaFX)

[英]How do I change the position of a Color Picker (JavaFX)

I have a Color Picker but it's always located in the middle of the screen, my question is, how can I set a X and Y coordinate for the Color Picker?我有一个拾色器,但它总是位于屏幕中间,我的问题是,如何为拾色器设置 X 和 Y 坐标?

I already tried relocate and setlayoutX , but that aint working either:(我已经尝试过relocatesetlayoutX ,但那都不起作用:(

package gui;

import display.Image;
import java.io.IOException;
import java.util.logging.Level;
import java.util.logging.Logger;
import javafx.application.Application;
import javafx.event.Event;
import javafx.event.EventHandler;
import javafx.geometry.Insets;
import javafx.scene.Scene;
import javafx.scene.canvas.Canvas;
import javafx.scene.canvas.GraphicsContext;
import javafx.scene.control.ColorPicker;
import javafx.scene.layout.Background;
import javafx.scene.layout.BackgroundFill;
import javafx.scene.layout.CornerRadii;
import javafx.scene.layout.StackPane;
import javafx.scene.paint.Color;
import javafx.scene.paint.Paint;
import javafx.scene.text.Font;
import javafx.stage.Stage;



public class JavaFXColorPicker extends Application {
private Image head;
private Image heart;

@Override
public void start(Stage primaryStage) throws IOException {
    StackPane root = new StackPane();
    Scene scene = new Scene(root, 300, 300, Color.BLACK);   
    final Canvas canvas = new Canvas(250,250);
    GraphicsContext gc = canvas.getGraphicsContext2D();





    ColorPicker HeadColor = new ColorPicker();
    ColorPicker BodyColor = new ColorPicker();
    ColorPicker LegColor = new ColorPicker();



    HeadColor.setOnAction(new EventHandler(){

        @Override
        public void handle(Event event) {
            Color HeadPaint = HeadColor.getValue();
            Color[] HeadColorArray = new Color[]
        {
            new Color(0 , 0, 0, 1),
            HeadPaint,
            HeadPaint,
            HeadPaint,
            HeadPaint,
            new Color(1, 1, 1, 1) // de ogen
        };
            try {
                head = new display.Image(display.Parts.playerHead);
            } catch (IOException ex) {
                Logger.getLogger(JavaFXColorPicker.class.getName()).log(Level.SEVERE, null, ex);
            }


            head.recolour(HeadColorArray);
            Image i = head;
            gc.drawImage(i.show(), 30, 100);


        }

    });




    head = new display.Image(display.Parts.playerHead);
    Image i = head;
    gc.drawImage(i.show(), 10, 100);



    root.getChildren().add(canvas);






    root.getChildren().add(HeadColor);
    primaryStage.setTitle("Customize Character!");
    primaryStage.setScene(scene);
    primaryStage.show();




}

public static void main(String[] args) {
    launch(args);


}

}

I've tried the setlayoutX & setlayoutY and worked for me.我试过setlayoutX & setlayoutY并为我工作。

In your case, you are using 3 Color Pickers.在您的例子中,您使用了 3 个拾色器。 Try to set the Layout for each one of them.尝试为它们中的每一个设置布局

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM