簡體   English   中英

有沒有辦法檢查ComboBox在JavaFX中是否有任何項目?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM