JavaFX FXML app:FXML节点上的奇怪NullPointer异常

时间:2016-04-07 07:35:42

标签: java javafx nullpointerexception fxml

在我的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"));
    }
/*
*/
}

这样做是在行

处抛出NullPointerException
public 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文件初始化,我可以在应用程序窗口中看到它的默认文本。那么发生了什么,我在这里错过了什么?

1 个答案:

答案 0 :(得分:0)

我猜你是静态地使用textMessageDisplay来创建问题,尝试通过创建MainWindowController的对象来加入。