JavaFX:调用方法时出现NullPointerException

时间:2018-05-16 12:24:59

标签: java javafx

我遇到的问题是,当我从另一个包中的另一个类调用Java控制器中的方法loginerroroutput时。我无法使用fx:id="loginerrormessage"更改标签(setText)。我得到一个NullPointerException错误。调用该方法,但找不到标签。当我通过我的控制器的方法调用此方法(loginerroroutput)时,它可以工作。

控制器代码

package gui;


import javafx.fxml.FXML;
import javafx.scene.control.Label;

import java.net.URL;
import java.util.ResourceBundle;

public class LoginController {

    private ResourceBundle resources;

    private URL location;

    @FXML
    public Label Loginerrormessage;

    //  Aufruf vom Eventbus für alle Fehler für das Login-> Fehlerausgabe als String wird angezeigt
    public void loginerroroutput(String string){   
        System.out.println(string);                  //Console output string
        Loginerrormessage.setText(string);           // Console output null

    }
    public void initialize() {
    }
}

FXML Code

我很确定它是initialize()方法,因为我认为该方法负责后处理过程。

感谢您的提示和建议。

1 个答案:

答案 0 :(得分:0)

您应该保存任何LoginController对象以准确调用此对象。

例如:

FXMLLoader loader = new FXMLLoader();
loader.setLocation(getClass().getClassLoader().getResource("loginController.fxml"));
LoginController loginController = loader.getController();
AnyWhereStorage.setLoginController(loginController);  

然后在任何地方:

AnyWhereStorage.getLoginController.loginerroroutput("Error");