JavaFX尝试使用colorpicker更改按钮的颜色

JavaFX尝试使用colorpicker更改按钮的颜色,javafx,javafx-2,javafx-8,Javafx,Javafx 2,Javafx 8,我想用这个来改变我按钮的颜色 /** What happens when you click on the color picker button */ @FXML private void onColorPickerButton() { Button[] buttons = {firstButton, secondButton, thirdButton}; for(int i = 0; i < buttons.length; i++) { buttons[

我想用这个来改变我按钮的颜色

/** What happens when you click on the color picker button */
@FXML
private void onColorPickerButton() {
    Button[] buttons = {firstButton, secondButton, thirdButton};
    for(int i = 0; i < buttons.length; i++) {
        buttons[i].setStyle(colorPicker.getStyle());
    }
}
当我点击按钮时

这是我的颜色选择器

/** The ColorPicker */
@FXML
private ColorPicker colorPicker;
我将fx:id放在场景生成器中,并且已经完成了所有操作,但我真的不知道出了什么问题

按钮:

/** The first button */
@FXML
private Button firstButton;

/** The second button */
@FXML
private Button secondButton;

与第三个按钮相同,异常的原因是控制器的第88行出现了一个
NullPointerException

Caused by: java.lang.NullPointerException at com.gambling.client.GamblingClientController.
        onColorPickerButton(GamblingClientController.java:88)
由于您没有显示所有代码,我只能猜测在您的
onColorPickerButton
方法中:

Button[] buttons = {firstButton, secondButton, thirdButton};
for(int i = 0; i < buttons.length; i++) {
    buttons[i].setStyle(colorPicker.getStyle());
}

它们有一个@FXML注释确保它们每个都有一个注释。是的,我确定我编辑了线程,错误在这里按钮[i]。设置样式(colorPicker.getStyle());我用三个按钮和一个颜色选择器测试了自己,但我没有得到NPE。无论如何,我刚刚意识到您不必调用
getStyle()
,而是调用
colorPicker.getValue()
。如果你想改变按钮的背景色,你必须在那里添加css。。。我正在用这个编辑我的答案。
Button[] buttons = {firstButton, secondButton, thirdButton};
for(int i = 0; i < buttons.length; i++) {
    buttons[i].setStyle(colorPicker.getStyle());
}
@FXML
private void onColorPickerButton() {
    Button[] buttons = {firstButton, secondButton, thirdButton};
    Color color = colorPicker.getValue();
    if(color!=null){
        for (Button button : buttons) {
            button.setStyle("-fx-background-color: "+color.toString().replace("0x", "#"));
        }
    }
}