在我的JavaFX应用程序中,我收到一个NullPointerException,我无法理解为我的生活。该应用程序是一个简单的伪数据库,在这种情况下显示表中的开发人员条目及其各种数据,用户可以打开辅助窗口以提供一些输入,从而创建一个新条目。主窗口控制器的代码:
abcdef-g
用户为新开发者输入数据的辅助窗口代码:
public class MainWindowController {
/*
*/
@FXML
public static Text textMessageDisplay;
@FXML
private void handleCreateDeveloper() throws IOException {
FXMLLoader loader = new FXMLLoader(getClass().getResource("CreateDeveloperWindow.fxml"));
Scene CreateDeveloperScene;
CreateDeveloperScene = new Scene(loader.load());
Stage inputStage = new Stage();
inputStage.initOwner(theStage);
inputStage.setScene(CreateDeveloperScene);
inputStage.showAndWait();
}
public void initialize() {
developerNameColumn.setCellValueFactory(new PropertyValueFactory<>("name"));
}
/*
*/
}
这样做是在行
处抛出NullPointerExceptionpublic class CreateDeveloperWindowController {
@FXML
private Button newDeveloperCreateButton;
@FXML
//TODO Check for same name
private void handleCreateDeveloperButton() {
String proposedNewDevName = newDeveloperNameTextField.getText();
String proposedNewDevPass = newDeveloperPassTextField.getText();
if (proposedNewDevName.equals("") || proposedNewDevPass.equals("")) {
MainWindowController.textMessageDisplay.setText("Name and password must not be empty!");
} else {
allDevelopers.add(new Developer(proposedNewDevName, proposedNewDevPass));
}
}
}
按下“创建”按钮,输入文本字段为空。为什么?一切都很好,textMessageDisplay在MainWindowControlled中声明并从FXML文件初始化,我可以在应用程序窗口中看到它的默认文本。那么发生了什么,我在这里错过了什么?
答案 0 :(得分:0)
我猜你是静态地使用textMessageDisplay
来创建问题,尝试通过创建MainWindowController
的对象来加入。