从combobox中选择多个项目

请问我想知道如何更改javafxmlcombobox的选择模型,以便它可以允许多个选择。 任何贡献将不胜感谢。

您可以尝试使用ControlsFX CheckComboBox ( ControlsFX是JavaFX的第三方控件库)。

checkcombobox

刚刚从CheckComboBox javadoc复制:

一个简单的UI控件,可以在类似ComboBox的控件中选择零个或多个项目。 每个行项都显示一个CheckBox,并且可以通过检查模型查询每一行的状态。

// create the data to show in the CheckComboBox final ObservableList strings = FXCollections.observableArrayList(); for (int i = 0; i <= 100; i++) { strings.add("Item " + i); } // Create the CheckComboBox with the data final CheckComboBox checkComboBox = new CheckComboBox(strings); // and listen to the relevant events (eg when the selected indices or // selected items change). checkComboBox.getCheckModel().getSelectedItems().addListener(new ListChangeListener() { public void onChanged(ListChangeListener.Change c) { System.out.println(checkComboBox.getCheckModel().getSelectedItems()); } }); } 

注意: JavaFX控制开发人员对JavaFX的内置combobox控件的评论 :

您可以将所需的任何选择模型实例放入ComboBox,但只支持单个选择。 我们之所以这样做是因为如果不对用户体验和用户体验做出重大改变,多项选择并没有真正意义,我们认为未来可以开发一个单独的控件以更好地支持这个用例

来自ControlsFX的CheckComboBox控件是单独控制的。

我需要类似的东西,这解决了我的问题。

 @FXML public MenuButton menuButton; ...... CheckBox cb0 = new CheckBox("x"); CustomMenuItem item0 = new CustomMenuItem(cb0); CheckBox cb1 = new CheckBox("y"); CustomMenuItem item1 = new CustomMenuItem(cb1); item0.setHideOnClick(false); item1.setHideOnClick(false); menuButton.getItems().setAll(item0,item1);