JavaFX-kontroller och ComboBox

click fraud protection

ComboBox-klassen skapar en kontroll som gör att användaren kan välja ett alternativ i en listruta med alternativ. Listrutan visas när användaren klickar på ComboBox-kontrollen. När antalet alternativ överstiger storleken på listrutan kan användaren bläddra ner till ytterligare alternativ. Detta skiljer sig från ChoiceBox vilket främst används när antalet val är relativt små.

Importmeddelande

javafx.scene.control. Kombinationsrutan

konstruktörer

ComboBox-klassen har två konstruktörer beroende på om du vill skapa ett tomt ComboBox-objekt eller ett som fylls med objekt.

Så här skapar du en tom ComboBox

ComboBox-frukt = ny ComboBox ();

Skapa ett ComboBox-objekt och fylla det med strängobjekt från en ObservableList

ObservableList fruits = FXCollections.observableArrayList ( 
"Apple", "Banana", "Pear", "Strawberry", "Peach", "Orange", "Plum");
ComboBox frukt = ny ComboBox (frukt);

Användbara metoder

Om du skapar ett tomt ComboBox-objekt kan du använda metoden setItems. Att skicka en observerbar lista över objekt ställer in objekten i Combobox.

instagram viewer
ObservableList fruits = FXCollections.observableArrayList ( 
"Apple", "Banana", "Pear", "Strawberry", "Peach", "Orange", "Plum");
frukt.setProdukter (frukter);

Om du vill lägga till objekt i ComboBox-listan senare kan du använda metoden addAll i getItems-metoden. Detta kommer att lägga till artiklarna i slutet av alternativlistan:

fruit.getItems (). addAll ("Melon", "Cherry", "Blackberry");

För att lägga till ett alternativ till en viss plats i ComboBox-alternativlistan använder du tilläggsmetoden för metoden getItems. Den här metoden tar ett indexvärde och det värde du vill lägga till:

fruit.getItems (). lägg till (1, "Citron");

Notera: Indexvärdena för ComboBox börjar på 0. Till exempel kommer värdet ovan för "Citron" ovan att infogas i ComboBox-alternativlistan på position 2 eftersom indexet som är godkänt är 1.

För att välja ett alternativ i ComboBox-alternativlistan använder du metoden setValue:

fruit.setValue ( "Cherry");

Om värdet som skickas till metoden setValue inte finns i listan kommer värdet fortfarande att väljas. Men det betyder inte att detta värde har lagts till i listan. Om användaren därefter väljer ett annat värde kommer det initiala värdet inte längre att finnas i listan som ska väljas.

För att få värdet på det för närvarande valda objektet i ComboBox använder du metoden getItems:

Sträng vald = fruit.getValue (). ToString ();

Tips om användning

Antalet alternativ som normalt presenteras av ComboBox-rullgardinslistan är tio (såvida det inte är mindre än tio artiklar i vilket fall det är standardantalet). Detta nummer kan ändras med metoden setVisibleRowCount:

fruit.setVisibleRowCount (25);

Återigen, om antalet objekt i listan är mindre än det värde som anges i metoden setVisibleRowCount kommer ComboBox att visa antalet objekt i rullgardinsmenyn ComboBox.

Hantering av händelser

För att spåra valet av objekt på ett ComboBox-objekt kan du använda metoden addListener valdItemProperty-metod för SelectionModel för att skapa en ChangeListener Det kommer att plocka upp ändringshändelserna för ComboBox:

final Label choiceLabel = new Label ();
fruit.getSelectionModel (). selectedItemProperty (). addListener (
ny ChangeListener () {
offentligt tomrum förändrats (ObservableValue ov,
String old_val, String new_val) {
choiceLabel.setText (new_val);
}
});
instagram story viewer