JavaFX / comment/charge de remplir les valeurs au démarrage?
J'ai commencé à travailler avec JavaFX juste aujourd'hui et déjà besoin de quelques conseils. Je charge le applicaton.fxml
(créé avec Oracle SceneBuiler) à l'aide de la FXMLLoader dans le start(Stage ...)
méthode de la MainApplication (qui a un ApplicationController spécifié dans mon application.fxml
fichier).
<AnchorPane id="AnchorPane" disable="false" maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity" minWidth="-Infinity" prefHeight="600.0" prefWidth="800.0" styleClass="theme" xmlns:fx="http://javafx.com/fxml/1" xmlns="http://javafx.com/javafx/2.2" fx:controller="app.AppController">
...more code here...
<ComboBox id="cmb_locations" fx:id="cmb_locations">
<items>
<FXCollections fx:factory="observableArrayList">
<String fx:value="Item 1" />
<String fx:value="Item 2" />
<String fx:value="Item 3" />
</FXCollections>
</items>
</ComboBox>
Maintenant, j'ai un ComboBox
dans le applicaton.fxml
, qui a trois éléments (les éléments par défaut). Ce dont j'ai besoin est à remplir que ComboBox
durant le démarrage de mes propres valeurs. Personne ne sait comment faire et où mettre les extraits de code pertinentes (app.AppController
ou quelque chose de similaire)? Merci à l'avance.
OriginalL'auteur nyyrikki | 2013-08-21
Vous devez vous connecter pour publier un commentaire.
Vous avez quelques contrôleur pour vous fichier fxml. Là, vous avez accès à votre zone de liste déroulante. Vous pouvez mettre ce code à la configuration de la liste d'éléments (probablement dans la méthode initialize ()):
Si vous n'avez pas vraiment envie de modifier votre fichier fxml il vous suffit d'effacer la liste de la première à
cmb_locations.getItems().clear();
avant l'installation de la nouvelle liste.public void initialize(URL location, ResourceBundle resources)
et l' (par le SceneBuilder créé)void initialize()
méthode?Je suis à l'aide de netbeans et quand j'ai créer le fxml avec le contrôleur de modèle, il génère
public
l'accès à cette méthode. J'ai cette méthode commepublic
dans Initializable interface (javafx ver 2.2.25). Alors je ne sais pourquoi SB va pour les colis-privé.void initialiser(URL de l'emplacement, de ResourceBundle ressources) est une vieille version. maintenant, vous avez juste à écrire
void initialize();
nouvelle version.OriginalL'auteur flyer
Commencez par supprimer les valeurs par défaut dans le FXML "Item 1" "Item 2" ...
juste pour avoir
et sur votre contrôleur si vous voulez récupérer votre zone de liste déroulante vous avez à injecter en procédant de la
OriginalL'auteur agonist_
Dans votre contrôleur, vous mettez en œuvre la Initializable interface.
Ensuite, dans la méthode initialize, il vous suffit d'ajouter votre code pour charger votre zone de liste modifiable.
OriginalL'auteur Ekans