JavaFX:ColorPicker每次都会返回相同的值

时间:2019-05-26 13:32:32

标签: java javafx color-picker

因此,我尝试用“拾色器”填充“矩形”,但它不配合。 我是这样的:

@FXML
private ColorPicker colorPicker = new ColorPicker(Color.BLACK);
    @FXML
    public void changeColor()
    {    
        myRect.setFill(colorPicker.getValue());
        System.out.println("color = " + colorPicker.getValue());
    }

我将此功能绑定到SceneBuilder中的ColorPicker,但是当我选择一种颜色时,我的矩形仅将其颜色更改为黑色(或我在构造函数中输入的任何默认颜色),而与选择的颜色无关。因此,每次我选择一种颜色时,我都会得到输出“ color = 0xff0000ff”。是因为我没有使用EventHandler(我不知为何无法使其在Initialize函数中工作)?据我了解,如果将此函数绑定到OnAction字段,它应该像侦听器一样工作。

public class Main extends Application {

    Stage window;
    @Override
    public void start(Stage primaryStage) {
        try {

             window = primaryStage;
             Parent root = FXMLLoader.load(getClass().getResource("/MainScreen.fxml"));

             Scene scene = new Scene(root);
             window.setScene(scene);
             window.show();




        } catch(Exception e) {
            e.printStackTrace();
        }

    }

    public static void main(String[] args) {
        launch(args);
    }
}
public class Controller{
    @FXML
    private  ColorPicker colorPicker = new ColorPicker(Color.BLACK);

    @FXML
    private Rectangle myRect;

    public void initialize(){}

    @FXML
    public void changeWaveColor()
    {    
        myRect.setFill(colorPicker.getValue());
        System.out.println("Function color = " + colorPicker.getValue());
    }

}

0 个答案:

没有答案