2014-09-19 56 views
0

我只使用JavaFX工作在过去的一天,但似乎时试图填充列表视图时遇到一个空指针异常。了JavaFx空指针异常填充一个ListView

基本上我已经登录表单,并当在一个新的.fxml形式在用户登录加载包含具有内部列表视图手风琴。

我想列表视图来填充,一旦用户点击登录按钮。调试显示AccountMenu为空,但我不明白为什么。任何人都可以将我指向正确的方向吗?

感谢FXML文件

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(); 
     } 
} 

部分:

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

首先,你应该遵循Java编码风格,属性应该具有较低的情况下启动。 – user3679868 2014-09-19 02:04:28

回答

0

首先,你应该遵循Java编码风格,属性和变量应该具有较低的情况下启动。

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

+0

这是一个简单的测试,看看它是否正常工作,这就是为什么我不是太担心惯例。其次,我有一个指定为Gui.Controller的控制器,它是路径并正在工作,因为场景中的其他对象正在与控制器进行交互。我将尝试建议的FMLLoader.getController。 – Eladian 2014-09-19 05:37:09

+0

让你的控制器实现可初始化 – 2014-09-19 09:22:44