[英]Is there a way to check if a ComboBox has any items in JavaFX?
有沒有一種方法可以檢查ComboBox
是否有任何項目或它是否為空? 我有一個ComboBox
數組,我需要遍歷每個數組,如果ComboBox
中沒有任何項目,那么我必須將其隱藏。 以下代碼似乎不起作用:
for (ComboBox cmb : comboBoxes) {
if (cmb.getItems().isEmpty()) {
cmb.hide();
}
}
用於檢查ComboBox
是否沒有項目的代碼正確,但是用於隱藏ComboBox
代碼卻不正確。
ComboBox.hide
如果打開,則僅關閉顯示項目的彈出窗口。 它不會隱藏ComboBox
。 要隱藏ComboBox
,您需要設置可見性:
for (ComboBox cmb : comboBoxes) {
if (cmb.getItems().isEmpty()) {
cmb.setVisible(false);
}
}
或者調用一個方法來隱藏ComboBox
ES,你可以綁定visibleProperty
中的ComboBox
下載到自己的itemsProperty
使用自定義綁定:
List<ComboBox<String>> comboBoxes = new ArrayList<>();
for(int i = 0; i< 10; i++) {
ComboBox<String> combo = new ComboBox<>();
combo.visibleProperty().bind(Bindings.createBooleanBinding(() -> !combo.getItems().isEmpty(),
combo.itemsProperty().get()));
comboBoxes.add(combo);
}
好處是,您無需調用任何方法來隱藏ComboBox
,因為綁定是自動評估的,因此沒有人可以看到您的空組合。
.getItems()
方法返回一個ObservableList<T>
因此您只需檢查其.size()
。 這將告訴您是否為空。
for (ComboBox cmb : comboBoxes) {
if (cmb.getItems().size() <= 0) { // or cmb.getItems().isEmpty()
cmb.setVisible(false); }
}
如果ComboBox
由自己的List
填充,則您也可以僅通過相同的.size()
調用檢查列表是否為空。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.