組合框概述

組合框類創(chuàng)建一個(gè)控件,允許用戶從選項(xiàng)的下拉列表中選擇一個(gè)選項(xiàng)。當(dāng)用戶單擊組合框控件時(shí),將顯示下拉列表。當(dāng)選項(xiàng)數(shù)量超過(guò)下拉窗口的大小時(shí),用戶可以向下滾動(dòng)到更多選項(xiàng)。這與ChoiceBox不同,ChoiceBox主要用于選擇數(shù)量相對(duì)較少的集合時(shí)。

導(dǎo)入聲明

javafx.scene.control。組合框

建構(gòu)者

ComboBox類有兩個(gè)生成器,具體取決于您是要?jiǎng)?chuàng)建一個(gè)空的ComboBox對(duì)象還是一個(gè)填充了項(xiàng)目。

創(chuàng)建一個(gè)空的組合框

組合框果實(shí)=新組合框();

創(chuàng)建一個(gè)ComboBox對(duì)象,并用Observableist中的字符串項(xiàng)填充它

可觀察的水果=FXCollections.observatearraylist(
\35; #34;Apple \\#\35;34;\#\35;#34;34;梨\\35;#34;,\35; #####34;34;
\35; ##\35; 35;34;\\35;34;34;34 \\\\);

有用的方法

如果您創(chuàng)建一個(gè)空的組合框?qū)ο?,則可以使用setItems方法。傳遞一個(gè)可觀察的對(duì)象將在組合框中設(shè)置項(xiàng)目。

可觀察的水果=FXCollections.observatearraylist(
"蘋果","香蕉","梨"科普電器,"草莓","桃","橙色","李子");
fruit.setItems(水果);

如果您想稍后將項(xiàng)目添加到組合框列表中,則可以使用getItems方法的addAll方法。這將把項(xiàng)目附加到選項(xiàng)列表的末尾:

fruit.getItems()。addAll("Melon","Cherry","黑莓");

要將選項(xiàng)添加到組合框選項(xiàng)列表中的特定位置,請(qǐng)使用getItems方法的添加方法。這一點(diǎn)s方法采用索引值和您希望添加的值:

fruit.getItems()。添加(1,"檸檬");

注意:組合框的索引值從0開(kāi)始。例如,上面的"Lemon"值將被插入到位置2的組合框選項(xiàng)列表中,因?yàn)閭鬟f的索引是1。

要在組合框選項(xiàng)列表中預(yù)先選擇一個(gè)選項(xiàng),請(qǐng)使用setValue方法:

fruit.setValue("櫻桃");

如果傳遞給setValue方法的值不在列表中,則仍將選擇該值。但是,這并不意味著此值已添加到列表中。如果用戶隨后選擇另一個(gè)值,則初始值將不再在要選擇的列表中。

要在組合框中獲取當(dāng)前選定項(xiàng)目的值,請(qǐng)使用getItems方法:

選擇字符串=fruit.getVa

使用技巧

組合框下拉列表通常顯示的選項(xiàng)數(shù)為10(除非少于10個(gè)項(xiàng)目,在這種情況下,它默認(rèn)為項(xiàng)目數(shù))??梢允褂胹etVisibleRowCount方法更改此編號(hào):

fruit.setVisibleRowCount(25);

同樣,如果列表中的項(xiàng)目數(shù)量少于setVisibleRowCount方法中設(shè)置的值,則組合框?qū)⒛J(rèn)顯示組合框下拉列表中的項(xiàng)目數(shù)量。

處理事件

要跟蹤組合框?qū)ο笊享?xiàng)目的選擇,您可以使用SelectionModel的SelectEditeProperty方法的AddLister方法創(chuàng)建ChangeLister,它將拾取組合框的更改事件:

final Label selectionLabel=new Label();
fruit.getSelectionModel()。selectedTemproperty()。AddLister(
new changeLister(){
public void changed(observatevalueov,
字符串old_val,字符串new_val){
selectionLabel.setText(新的);
}
});