[英]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:(我已经尝试过
relocate
和setlayoutX
,但那都不起作用:(
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.