java - JavaFX:调用方法时出现 NullPointerException
问题描述
我遇到的问题是,当我loginerroroutput
从另一个包中的另一个类调用 Java 控制器中的方法时。我不能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()
方法,因为我认为该方法负责后处理过程。
感谢您的提示和建议。
解决方案
您应该在任何地方保存一个 LoginController 对象以准确调用该对象。
例如:
FXMLLoader loader = new FXMLLoader();
loader.setLocation(getClass().getClassLoader().getResource("loginController.fxml"));
LoginController loginController = loader.getController();
AnyWhereStorage.setLoginController(loginController);
然后在任何地方:
AnyWhereStorage.getLoginController.loginerroroutput("Error");
推荐阅读
- angular - 带导航的 Angular FullCalendar 自定义标题按钮
- google-visualization - 在谷歌图表中结合风格、间隔和确定性
- php - 使用 PHP 获取 og:image url
- html - 阴影背景大小的问题
- database - 为什么我在 XAMP 上托管的网站在本地主机上没有数据库错误?
- blazor - 在 blazor 页面上设置参数时 IIS 和独立应用程序崩溃
- spring - 尝试将 Spring 版本从 5.1 升级到 5.2 时出错
- meshlab - Meshlab-是否有一种简单的方法可以参考单个点来设置可能的坐标系统?
- mysql - MySQL 查询客户尚未选择的日期
- magento - 在 magento 2.3 中从外部服务器导入图像