我遇到的问题是,当我从另一个包中的另一个类调用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() {
}
}
我很确定它是initialize()
方法,因为我认为该方法负责后处理过程。
感谢您的提示和建议。
答案 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");