我正在尝试向我用SceneBuilder创建的FXML文件中存在的ChoiceBox添加值,但当我尝试这样做时(在main类中),无论我尝试什么,我都会得到一个NullPointerException。请注意,当我注释掉initialize()
方法中的ChoiceBox代码(参见下面)时,项目成功运行,因此NPE没有其他原因。
<ChoiceBox fx:id="itemKeuze" layoutX="132.0" layoutY="33.0" prefWidth="150.0" />
public class HoofdScherm extends Application {
@FXML
private ChoiceBox<String> itemKeuze;
@Override
public void start(Stage scherm) throws IOException
{
// The setup and loading of the FXML file...
}
@FXML
private void initialize()
{
// Now I'm only trying to disable the combobox instead of setting the values but the NPE is also thrown
itemKeuze.setDisable(true);
}
private void toonItemScherm()
{
Parent itemScherm = null;
try {
itemScherm = FXMLLoader.load(getClass().getResource("ItemScherm.fxml"));
} catch (Exception e) {
System.out.println("Kon itemScherm niet laden: " + e.getMessage());
}
//itemKeuze.setItems(FXCollections.observableArrayList("CD", "Film", "Spel"));
//itemKeuze.setDisable(true);
stage = new Stage();
stage.setTitle("Voeg item toe");
stage.setResizable(false);
stage.setAlwaysOnTop(true);
stage.setScene(new Scene(itemScherm));
stage.show();
}
}
堆栈跟踪
Exception in Application start method
Exception in thread "main" java.lang.reflect.InvocationTargetException
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at sun.launcher.LauncherHelper$FXHelper.main(Unknown Source)
Caused by: java.lang.RuntimeException: Exception in Application start method
at com.sun.javafx.application.LauncherImpl.launchApplication1(Unknown Source)
at com.sun.javafx.application.LauncherImpl.lambda$launchApplication$155(Unknown Source)
at java.lang.Thread.run(Unknown Source)
Caused by: javafx.fxml.LoadException:
/C:/Users/Isaak/Documents/workspace/JavaPracticumOpdracht3/bin/view/HoofdScherm.fxml
at javafx.fxml.FXMLLoader.constructLoadException(Unknown Source)
at javafx.fxml.FXMLLoader.loadImpl(Unknown Source)
at javafx.fxml.FXMLLoader.loadImpl(Unknown Source)
at javafx.fxml.FXMLLoader.loadImpl(Unknown Source)
at javafx.fxml.FXMLLoader.loadImpl(Unknown Source)
at javafx.fxml.FXMLLoader.loadImpl(Unknown Source)
at javafx.fxml.FXMLLoader.loadImpl(Unknown Source)
at javafx.fxml.FXMLLoader.loadImpl(Unknown Source)
at javafx.fxml.FXMLLoader.load(Unknown Source)
at view.HoofdScherm.start(HoofdScherm.java:38)
at com.sun.javafx.application.LauncherImpl.lambda$launchApplication1$162(Unknown Source)
at com.sun.javafx.application.PlatformImpl.lambda$runAndWait$175(Unknown Source)
at com.sun.javafx.application.PlatformImpl.lambda$null$173(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at com.sun.javafx.application.PlatformImpl.lambda$runLater$174(Unknown Source)
at com.sun.glass.ui.InvokeLaterDispatcher$Future.run(Unknown Source)
at com.sun.glass.ui.win.WinApplication._runLoop(Native Method)
at com.sun.glass.ui.win.WinApplication.lambda$null$148(Unknown Source)
... 1 more
Caused by: java.lang.reflect.InvocationTargetException
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at sun.reflect.misc.Trampoline.invoke(Unknown Source)
at sun.reflect.GeneratedMethodAccessor1.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at sun.reflect.misc.MethodUtil.invoke(Unknown Source)
... 18 more
Caused by: java.lang.NullPointerException
at view.HoofdScherm.initialize(HoofdScherm.java:109)
... 27 more
我找到了答案,部分归功于James_D提出的观点。
我没有将控制器添加到第二个FXML文件fx:controller=“”
中的AnchorPane。因为没有设置控制器,所以不能注入变量(fx:id->class variables)。我还为每个FXML文件创建了一个单独的控制器,因为所有内容都在扩展Apllication类的一个主类中。这也可能是问题的一部分。
在我的应用程序(,出现了一个向上箭头,表示,但我无法处理它来执行任何操作,甚至无法显示toast。我尝试了这个方法,并在选项ItemSelected()中处理了开关(item.getItemId()),但这两种解决方案都不适合我。我错过了一些东西,但不知道是什么。 这是我的代码: ... 我的整个选项项已选定: 我不知道其他代码是否重要: 在我的清单中,我没有父母活动。 我找到了这个答案,它似乎是
我刚刚安装了一台新的计算机--全新的Java1.8安装,全新的3.5.2 Maven配置,现在我正在创建一个全新的quickstart Maven项目。 当我添加父Spring Boot启动程序和单个依赖项时,无论我做什么,它都无法解析它。
我知道,它看起来像一个复制品,但其他解决方案都不起作用。我刚刚从Android Studio切换到IntelliJ IDEA(所以我不需要3,000个不同的IDE),设置好后,我创建了一个新项目,只是为了测试一切是否良好。Gradle构建开始不错,但随后它抛出了错误: 这是一个新的、普通的、未编辑的< code>build.gradle文件。 在消息中,我可以选择,这就是我的问题开始的地方。无论库
我尝试样式复选框背景颜色,但它不会改变任何我做。我正在使用最新的火狐29。 是否在css中或浏览器中有一些规则更改? CSS: 下面是一个演示http://jsfidle.net/6kxrg/
我正在尝试创建包含某些值的表的Excel文件。问题是,无论我做什么,Java都会创建损坏的Excel文件(.xlsx、.xlsm)。 更改现有表的列文件的名称已损坏,如果不进行修复,则无法打开它。名称已更改,但由于某些原因,必须修复该文件。创建新表或为现有表创建新列似乎会损坏文件,但我不知道为什么。 这是我的全部代码: 附言:我是Java初学者——我在Java上有三年的Rest时间。我为我的语言道
我将首先说,我已经查看并尝试了我能找到的每个问题的解决方案。最大的问题是,这些解决方案中的大多数都非常古老,Spring Boot在过去几年中发生了很大变化。明确地说,我已经尝试了这个、这个、这个、这个等等。我还阅读了许多教程。没有任何效果。 我有一个全新的Spring Boot应用程序,我正在尝试让JSP渲染与之一起工作。这些是我的依赖项: 我的项目安排如下: “WEB-APP/jsp”只是我尝