2012-03-14 21 views
6

GUI'yi oluşturmak için FXML kullanarak JavaFX uygulamasına sahibim.PreFill ListView FXML ile bir uygulamada görün

Bu uygulama başlatıldığında, örneğin veritabanından yüklenen bazı değerler içeren ListView'e sahip olmam gerekir. Peki bunu nasıl yapabilirim?

Kullanıcı, bir düğmeyi tıklattıktan sonra ListView'e öğeleri yükleyen veya bu gibi bir şeyi (FXML'de "onAction" özniteliği) yükleyen uygulamayı nasıl yapacağımı biliyorum. Ancak ListView'e otomatik olarak yüklenecek eşyalara ihtiyacım olduğu için bu beni uygun bulmuyor. Bir sonraki gibi Denetleyici ile fxml varsa

cevap

8

:

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

sadece uygulayabilirsiniz Initializable sizin Denetleyici'deki: Bu beş önceden belirlenmiş baud oranları ile benim choicebox doldurur

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

. Denetleyicinizden öğe eklemeye çalışırsanız, liste yalnızca bu değerleri (test edilmemiş) gösterir.

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

Ayrıca FXML aşağıdaki alma deyimi dahil etmek gerekir:

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

İşleri, ancak FXML dosyasının en gerekli ithalat ifadelerini eklemeyi unutmayın; ' ' –

+0

gibi nasıl özel bir fabrika tedarik edebilirsiniz? – crush