2014-09-19 46 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