因此,我尝试用“拾色器”填充“矩形”,但它不配合。 我是这样的:
@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());
}
}