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", "#"));
}
}
}