填充 ListView 时出现 JavaFx NullPointer 异常

标签 java javafx javafx-8

我过去一天才使用 JavaFX,但在尝试填充 ListView 时似乎遇到了空指针异常。

基本上我有登录表单,当用户登录时会加载一个新的 .fxml 表单,其中包含一个带有 ListView 的 Accordion 。

我希望用户单击登录按钮后填充 ListView 。调试显示 AccountMenu 为空,但我不明白为什么。谁能指出我正确的方向?

谢谢

public class Controller {
    @FXML
    ListView<String> AccountMenu;


 void Login(ActionEvent event) {
   try {
            ObservableList<String> items =FXCollections.observableArrayList (
                    "Item one","Item two");
            AccountMenu.setItems(items);

        }catch(Exception e){
            e.printStackTrace();
        }
}

fxml 文件的一部分:

<Accordion layoutY="136.0" prefHeight="768.0" prefWidth="210.0">
    <panes>
        <TitledPane id="MyAccount" animated="false" text="My account">
          <content>
            <AnchorPane minHeight="0.0" minWidth="0.0" prefHeight="180.0" prefWidth="200.0">
                 <children>
                    <ListView id="AccountMenu" fx:id="AccountMenu" layoutX="-1.0" prefHeight="658.0" prefWidth="210.0" />
                 </children>
              </AnchorPane>
          </content>
        </TitledPane>
      <TitledPane animated="false" style="-fx-background-color: red;" text="Books">

最佳答案

首先你应该遵循java编码风格,属性和变量应该以小写开头。

如果您声明了 Controller ,您的 FXML 不会显示,您的顶部容器应该具有 xml 属性 fx:controller="<your package>.Controller" ,您应该通过方法 FXMLLoader.getController() 访问您的 Controller 否则不会发生注入(inject)。

关于填充 ListView 时出现 JavaFx NullPointer 异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25925086/

相关文章:

Java压缩集合库

javafx - 从 JavaFX DragAndDrop 剪贴板访问自定义对象的属性

java - 仅对 JavaFx 中 TextArea 的第一行应用空格/填充

image - 关于带有小图标的 TextField

java - Application/JSON 是 Restful Web 服务中不支持的媒体类型

java - 优化 Tomcat/垃圾收集

java - 输入大小的问题,java noob

Java:打印数据表

Javafx 和 Sun.glass 机器人由于使用线程而导致 IllegalStateException 问题

encoding - 警报标题中出现奇怪的字符,可能是编码问题?