jew*_*sea 14
您可以尝试使用ControlsFX CheckComboBox(ControlsFX是JavaFX的第三方控件库).

刚刚从CheckComboBox javadoc复制:
一个简单的UI控件,可以在类似ComboBox的控件中选择零个或多个项目.每个行项都显示一个CheckBox,并且可以通过检查模型查询每一行的状态.
Run Code Online (Sandbox Code Playgroud)// create the data to show in the CheckComboBox final ObservableList<String> strings = FXCollections.observableArrayList(); for (int i = 0; i <= 100; i++) { strings.add("Item " + i); } // Create the CheckComboBox with the data final CheckComboBox<String> checkComboBox = new CheckComboBox<String>(strings); // and listen to the relevant events (e.g. when the selected indices or // selected items change). checkComboBox.getCheckModel().getSelectedItems().addListener(new ListChangeListener<String>() { public void onChanged(ListChangeListener.Change<? extends String> c) { System.out.println(checkComboBox.getCheckModel().getSelectedItems()); } }); }
注意:JavaFX控制开发人员对JavaFX的内置组合框控件的评论:
您可以将所需的任何选择模型实例放入ComboBox,但只支持单个选择.我们之所以这样做是因为如果不对用户体验和用户体验做出重大改变,多项选择并没有真正意义,我们认为将来可以开发一个单独的控件来更好地支持这个用例
来自ControlsFX的CheckComboBox控件是单独控制的.
小智 9
我需要类似的东西,这解决了我的问题.
@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);
Run Code Online (Sandbox Code Playgroud)