我有两个组合框:fruits
和drinks
。
fruits
具有以下字符串:"apple", "orange", "banana"
drinks
具有以下字符串:"water", "coffee", "juice"
如何制作具有用户为fruits
组合框和drinks
组合框选择的值的新组合框?
例如:如果用户选择apple
和water
,则新的ComboBox应包含apple
和water
作为选项。
答案 0 :(得分:0)
使用侦听器访问前两个value
的{{1}}属性,并从中更新第三个{1>}的项:
ComboBox
请注意,这不会阻止在两个@Override
public void start(Stage primaryStage) {
ComboBox<String> c1 = new ComboBox<>();
c1.getItems().addAll("apple", "orange", "banana");
ComboBox<String> c2 = new ComboBox<>();
c2.getItems().addAll("water", "coffee", "juice");
ComboBox<String> c3 = new ComboBox<>();
ChangeListener<String> listener = (o, oldValue, newValue) -> {
final List<String> items = c3.getItems();
int index = items.indexOf(oldValue);
if (index >= 0) {
if (newValue == null) {
items.remove(index);
} else {
items.set(index, newValue);
}
} else if (newValue != null) {
items.add(newValue);
}
};
c1.valueProperty().addListener(listener);
c2.valueProperty().addListener(listener);
final VBox vBox = new VBox(c1, c2, c3);
primaryStage.setScene(new Scene(vBox));
primaryStage.show();
}
中添加相同的字符串。
如果只想添加而不删除项目,请将侦听器更改为
ComboBox
此侦听器确实防止重复项。