即使相同的处理程序正常工作,也会引发java空指针异常
我对java非常陌生。我正在尝试用JavaFX构建一个简单的应用程序,但是发生了一些非常奇怪的事情:我有两个几乎相同的处理程序,handleButtonAction
和handleButtonAction2
,还有两个标签,clicked
和selected
。我有一个按钮。当我将此按钮设置为使用handleButtonAction
时,一切正常。当我切换到handleButtonAction2
时,我得到一个空指针异常。我真的无法理解这一点,因为就我的眼睛而言,两个操纵者做的几乎是同一件事
public class FXMLDocumentController implements Initializable {
@FXML
private Label clicked;
private Label selected;
@FXML
private void handleButtonAction(ActionEvent event) {
System.out.println("Text1");
clicked.setText("Text2");
}
@FXML
private void handleButtonAction2(ActionEvent event) {
System.out.println("More Text1");
selected.setText("More Text2");
}
@Override
public void initialize(URL url, ResourceBundle rb) {
// TODO
}
}
任何人都能弄清楚发生了什么
# 1 楼答案
(代表问题作者发布自我回答)
我真的认为上面的@FXML注释就足够了。谢谢你礼貌的回答和对我愚蠢的宽容
# 2 楼答案
您的FXMLDocumentController。所选实例必须为空。您可能忘记了初始化它,当您有类实例时,编译器或IDE通常不会警告您实例未初始化(或者至少我的实例未初始化)。如果你真的找不到错误,检查你的其他课程。也在这里发布其他类的代码。 编辑:我很愚蠢,没有意识到这一点,我相信你必须这样做: