2012-03-14 4 views
6

FXMLを使用してGUIを構築するJavaFXアプリケーションがあります。FXML付きアプリケーションのプレビューリストビュー

このアプリケーションを起動すると、たとえばデータベースからロードされた値を持つListViewが必要になります。では、どうしたらいいですか?

ユーザーがボタンをクリックした後にアイテムをListViewにロードするアプリケーションを作成する方法(これはFXMLの "onAction"属性)です。しかし、これは、ListViewに自動的にロードされるアイテムが必要なので、私には適していません。あなたは次のようなコントローラ、とFXMLている場合

答えて

8

<AnchorPane xmlns:fx="http://javafx.com/fxml" fx:controller="test.Sample"> 
    <children> 
     <ListView fx:id="listView"/> 
    </children> 
</AnchorPane> 

をあなたは自分のコントローラにInitializableを実装できます。

public class Sample implements Initializable { 
    @FXML 
    private ListView listView; 

    @Override 
    public void initialize(URL url, ResourceBundle rb) { 
     // change next line to DB load 
     List<String> values = Arrays.asList("one", "two", "three"); 

     listView.setItems(FXCollections.observableList(values)); 

    } 
} 
14

これは5つの所定のボーレートと私のchoiceboxを埋めます。コントローラからアイテムを追加しようとすると、リストにはその値(テストされていない)のみが表示されます。

<ChoiceBox fx:id="baudRates" layoutX="234.0" layoutY="72.0"> 
    <items> 
     <FXCollections fx:factory="observableArrayList"> 
      <String fx:value="4800" /> 
      <String fx:value="9600" /> 
      <String fx:value="19200" /> 
      <String fx:value="57600" /> 
      <String fx:value="115200" /> 
     </FXCollections> 
    </items> 
</ChoiceBox> 

また、あなたのFXMLで、次のimport文を含める必要があります。

<?import javafx.collections.*?> 
+4

作品が、あなたのFXMLファイルの先頭に必要なインポート文を追加することを忘れないでください。 '<?import javafx.collections。*?>' –

+0

のようにカスタムファクトリを提供するにはどうすればいいですか? – crush

関連する問題