JavaFX-kontroller og ComboBox

ComboBox-klassen oppretter en kontroll som lar brukeren velge et alternativ fra en rullegardinliste med alternativer. Nedtrekkslisten vises når brukeren klikker på ComboBox-kontrollen. Når antall alternativer overstiger størrelsen på nedtrekksvinduet, kan brukeren bla ned til flere alternativer. Dette skiller seg fra ChoiceBox som først og fremst brukes når antall valg er relativt lite.

Importerklæring

javafx.scene.control. ComboBox

Constructors

ComboBox-klassen har to konstruktører avhengig av om du vil opprette et tomt ComboBox-objekt eller et som er befolket med elementer.

Slik lager du en tom ComboBox

ComboBox frukt = ny ComboBox ();

Slik oppretter du et ComboBox-objekt og fyller det med strengelementer fra en ObservableList

ObservableList fruits = FXCollections.observableArrayList ( 
"Eple", "banan", "pære", "jordbær", "fersken", "oransje", "plomme");
ComboBox frukt = ny ComboBox (frukt);

Nyttige metoder

Hvis du oppretter et tomt ComboBox-objekt, kan du bruke metoden setItems. Ved å passere en observerbar liste over objekter vil du sette elementene i Combobox.

instagram viewer
ObservableList fruits = FXCollections.observableArrayList ( 
"Eple", "banan", "pære", "jordbær", "fersken", "oransje", "plomme");
frukt.settIntemer (frukt);

Hvis du vil legge til elementer i ComboBox-listen senere, kan du bruke addAll-metoden for getItems-metoden. Dette vil legge elementene til slutten av alternativlisten:

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

Hvis du vil legge til et alternativ til et bestemt sted i alternativlisten ComboBox, bruker du tilleggsmetoden til getItems-metoden. Denne metoden tar en indeksverdi og verdien du vil legge til:

frukt.getItems (). legg til (1, "Sitron");

Merk: Indeksverdiene til ComboBox starter på 0. For eksempel vil verdien ovenfor "Sitron" ovenfor settes inn i ComboBox-alternativlisten på posisjon 2 ettersom indeksen som er bestått er 1.

Hvis du vil forhånds velge et alternativ i ComboBox-alternativlisten, bruker du metoden setValue:

fruit.setValue ( "Cherry");

Hvis verdien som er gitt til setValue-metoden ikke er på listen, vil verdien fortsatt være valgt. Det betyr imidlertid ikke at denne verdien er lagt til i listen. Hvis brukeren deretter plukker en annen verdi, vil den opprinnelige verdien ikke lenger være i listen som skal velges.

For å få verdien på det valgte elementet i ComboBox bruker du getItems-metoden:

Streng valgt = fruit.getValue (). ToString ();

Tips om bruk

Antallet alternativer som normalt presenteres av rullegardinlisten ComboBox er ti (med mindre det er mindre enn ti elementer, i hvilket tilfelle er standard for antall elementer). Dette nummeret kan endres ved å bruke metoden setVisibleRowCount:

frukt.setVisibleRowCount (25);

Igjen, hvis antall elementer i listen er mindre enn verdien som er angitt i metoden setVisibleRowCount, vil ComboBox som standard vise antallet elementer i rullegardinmenyen ComboBox.

Håndtering av hendelser

For å spore valg av elementer på et ComboBox-objekt kan du bruke addListener-metoden til valgtItemProperty-metoden til SelectionModel for å opprette en ChangeListener Den vil plukke opp endringshendelsene for ComboBox:

final Label choiceLabel = new Label ();
fruit.getSelectionModel (). selectedItemProperty (). addListener (
ny ChangeListener () {
offentlig tomrom endret (ObservableValue ov,
String old_val, String new_val) {
choiceLabel.setText (new_val);
}
});