JavaFx NullPointer填充ListView时的异常

时间:2014-09-19 01:45:12

标签: java javafx javafx-8

我过去只使用过JavaFX,但在尝试填充列表视图时似乎遇到了空指针异常。

基本上我有登录表单,当用户登录时,会加载一个新的.fxml表单,其中包含一个带有列表视图的手风琴。

我想在用户点击登录按钮后填充列表视图。调试显示AccountMenu为null,但我无法弄清楚原因。有人能指出我正确的方向吗?

由于

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">

2 个答案:

答案 0 :(得分:1)

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

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

答案 1 :(得分:-2)

如果使用SceneBuilder,请尝试保存并刷新(打开)fxml文件。

1-保存文件: Saving file illustration

2-在IDE中刷新(打开)fxml文件(对我来说是Eclipse) Refreshing file illustration