java - JavaFX- NullPointerException 从其父节点中删除节点时
问题描述
我正在使用 Scenebuilder 和 JavaFX 8。
我有一个ComboBox
,VBox
我试图ComboBox
从一个简单的条件开始VBox
时删除。Application
这是我的尝试:
主.java
public class Main extends Application {
@Override
public void start(Stage window) throws IOException {
int QueryValue = 1;
if (QueryValue == 1) {
FXMLLoader loader=new FXMLLoader();
Parent root = loader.load(getClass().getResource("/com/pos/view/login.fxml"));
LoginController lc= (LoginController)loader.getController();
lc.setInvisible();
Scene scene = new Scene(root);
window.setScene(scene);
window.show();
}
}
// ...
}
控制器类:LoginController.java
@FXML
private ComboBox<?> organization_combo;
@FXML
private VBox vbox;
public void setInvisible() {
vbox.getChildren().remove(organization_combo);
}
我在 FXML 中添加了我的控制器类,并为VBox
和提供了 fx:id ComboBox
。问题是每当我打电话时setInvisible()
,我都会得到NullPointerException
. 但是当我不调用该setInvisible()
方法时,我的 fxml 加载良好。谁能帮我?
注意:我已经关注JavaFX - How to delete a specific Node from an AnchorPane并且我的问题与标记的不匹配。
这是错误消息。
Caused by: java.lang.RuntimeException: Exception in Application start method
at javafx.graphics/com.sun.javafx.application.LauncherImpl.launchApplication1(Unknown Source)
at javafx.graphics/com.sun.javafx.application.LauncherImpl.lambda$launchApplication$2(Unknown Source)
at java.base/java.lang.Thread.run(Unknown Source)
Caused by: java.lang.NullPointerException
at com.pos.view.LoginController.setInvisible(LoginController.java:45)
at com.pos.main.Main.start(Main.java:26)
at javafx.graphics/com.sun.javafx.application.LauncherImpl.lambda$launchApplication1$9(Unknown Source)
at javafx.graphics/com.sun.javafx.application.PlatformImpl.lambda$runAndWait$11(Unknown Source)
at javafx.graphics/com.sun.javafx.application.PlatformImpl.lambda$runLater$9(Unknown Source)
at java.base/java.security.AccessController.doPrivileged(Native Method)
at javafx.graphics/com.sun.javafx.application.PlatformImpl.lambda$runLater$10(Unknown Source)
at javafx.graphics/com.sun.glass.ui.InvokeLaterDispatcher$Future.run(Unknown Source)
at javafx.graphics/com.sun.glass.ui.win.WinApplication._runLoop(Native Method)
at javafx.graphics/com.sun.glass.ui.win.WinApplication.lambda$runLoop$3(Unknown Source)
解决方案
推荐阅读
- javascript - 如何在 asp.net core mvc 中验证 JavaScript 创建的元素
- asp.net-core-mvc - 如何在 ASP.NET Core 3.1 中扩展 Authorize 属性的逻辑?
- python - 在 Python 中创建嵌套字典
- python - 获取 GAN 创建的图像标签
- c# - Xamarin CollectionView 空白
- apache - 通过 Certbot 在 Debian 上使用 SSL 的 Apache:如何为特定子文件夹添加配置设置?
- python-3.x - 如何在 Python 中打开系统日志文件
- c# - 如何将角色旋转到相机的旋转?
- flutter - Flutter:如何通过 dart Code 获取我的 Flutter 应用程序中所有小部件对象的所有属性以在测试中使用它?
- r - R在读/写CSV时失去小数点的精度?