当我想为我的TextField setText时,它会引发Null指针异常



当我想为textfield(minifilepath)setText时,它会引发null例外,我不知道我的代码有什么问题?

public class SettingsController {
@FXML
private TextField miniFilePath;
@FXML
private Button settingExitBtn;
public static String miniFilterPath = new String() ;
public static String reportDirectoryPath = new String();
Stage settings = new Stage();

public void display( ){
    try {
        FXMLLoader fxmlLoader = new FXMLLoader(getClass().getResource("Settings.fxml"));
        Parent root = (Parent) fxmlLoader.load();
        //settings = new Stage();
        Stage settings = new Stage();
        settings.setScene(new Scene(root));
        settings.initModality(Modality.APPLICATION_MODAL);
        settings.setResizable(false);
        settings.setTitle("settings");
        if (!miniFilterPath.isEmpty())
            miniFilePath.setText(miniFilterPath);
        settings.show();
    } catch(Exception e) {
        e.printStackTrace();
    }
}

此类用作我的第二个窗口,当我单击另一个窗口中的一个窗口中的一个按钮时,将调用一个窗口并制作窗口。我希望每次用户设置此窗口时,用户将文本设置为文本后,文本字段设置为之前设置的字符串。

在您的display()方法

之前覆盖initialize()方法
@FXML
public void initialize() {
    refresh();
}
public void refresh() {
   if (!(miniFilterPath == null | miniFilterPath.trim().equals("")))
       miniFilePath.setText(miniFilterPath);
}

我还假设您的FXML文件中有一个文本字段,其中包括以下内容:

 fx:id="miniFilePath"

如果您没有,请在显示()方法中的文本字段以下:

miniFilePath = new TextField();

最新更新