在JavaFx中使用setStyle更改背景色

在JavaFx中使用setStyle更改背景色,javafx,Javafx,我正在从事一个java项目。该项目工作正常,但我需要使用图形和UI使其更酷,因此我继续使用JavaFx。计划很简单。我使用一个外部文件调用一个数字,根据数字是否可被2整除,三个按钮将具有不同的背景颜色;红色或绿色。我使用setStyle根据输入更改背景颜色,它会给出空指针异常,我不知道程序是否在程序逻辑或其他方面。(在java应用程序中,输入和输出都正常工作)变量k是我程序的不同部分,但它工作正常,返回1或0 File file = new File("count.txt");

我正在从事一个java项目。该项目工作正常,但我需要使用图形和UI使其更酷,因此我继续使用JavaFx。计划很简单。我使用一个外部文件调用一个数字,根据数字是否可被2整除,三个按钮将具有不同的背景颜色;红色或绿色。我使用setStyle根据输入更改背景颜色,它会给出空指针异常,我不知道程序是否在程序逻辑或其他方面。(在java应用程序中,输入和输出都正常工作)变量k是我程序的不同部分,但它工作正常,返回1或0

   File file = new File("count.txt");
      Scanner scanner = new Scanner(file);
      int count =0;

    while(scanner.hasNextInt()){
        count =scanner.nextInt();
    }

    if (k == 0){
    if ( count % 2 == 1){        


   waterButton.setStyle("-fx-background-color: #ff0000; ");
    waterButton2.setStyle("-fx-background-color: green");
   waterButton3.setStyle("-fx-background-color: green");

    }    
    else if (count % 2 ==0) {

   waterButton.setStyle("-fx-background-color: green");
   waterButton2.setStyle("-fx-background-color: green");
   waterButton3.setStyle("-fx-background-color: green");
    }
 }
 else {

waterButton.setStyle("-fx-background-color: #ff0000; ");
waterButton2.setStyle("-fx-background-color: #ff0000; ");
waterButton3.setStyle("-fx-background-color: #ff0000; ");
System.exit(0);
}
      }catch (IOException e){
          System.out.println(e.getMessage());
      }
////


waterButton.setStyle(“-fx背景色:#ff0000;”)行上的
NullPointerException
清楚地表明变量
waterButton
null
(就像人们已经猜到的那样)

因为您说您的程序正在工作,我假设您发布的代码在类的构造函数中(或从构造函数调用),因为在构造函数中FXML部分没有初始化,这意味着在调用方法之前,所有用
@FXML
注释的字段都是
null
(在对象构造之后调用)


这种行为无法改变,因为这正是FXML注入的工作方式,但是如果您将代码放在类的
initialize
方法中,它应该可以工作。

waterButton.setStyle(-fx背景色:#ff0000;)上的
NullPointerException
清楚地告诉我们变量
waterButton
null
(就像人们已经猜到的那样)

因为您说您的程序正在工作,我假设您发布的代码在类的构造函数中(或从构造函数调用),因为在构造函数中FXML部分没有初始化,这意味着在调用方法之前,所有用
@FXML
注释的字段都是
null
(在对象构造之后调用)


这种行为是无法改变的,因为FXML的注入就是这样工作的,但是如果你将你的代码放在类的
initialize
方法中,它应该会工作。

哦,好的。那么,在创建initialize方法之后,我应该在其中添加什么,完整的java代码?你可以添加你发布的所有代码。应该没有任何问题更多的NullPointerExceptions.Oh.好的。那么,在创建一个initialize方法之后,我应该在其中添加什么,完整的java代码?您可以添加您发布的所有代码。不应该有更多的NullPointerException。
 NullPointerException: waterButton.setStyle("-fx-background-color: #ff0000; ");