我有两个组合框,我可以从中获取它们的值。问题是,我喜欢这样,当两个盒子都处于特定值时,会发生一些事情。但我无法在自己的听众之外访问任何一个盒子的价值。
盒子的监听器:
character_class.getSelectionModel().selectedItemProperty().addListener(new ChangeListener<String>(){
public void changed(ObservableValue<? extends String> ov, String old_val, String new_val){
也许我错过了一些简单的事情,因为我一整天都在做这个项目而几乎没有休息,但我无法从其他地方访问new_val
以外的其他地方在听众之后。尝试将其公开失败,因为某些原因它只允许final
作为修饰符。
答案 0 :(得分:2)
对于这两个changelisteners,只需获取另一个ComboBox
的值,并通过调用combobox.getValue()
检查它是否与特定值匹配
ComboBox<String> c1 = new ComboBox<String>();
c1.getItems().addAll("red", "blue", "green");
ComboBox<String> c2 = new ComboBox<String>();
c2.getItems().addAll("yellow", "purple", "blue");
c1.getSelectionModel().selectedItemProperty().addListener(new ChangeListener() {
@Override
public void changed(ObservableValue observable, Object oldValue, Object newValue) {
String val = (String) newValue;
if(val.equals(c2.getValue())){
System.out.println("IT'S SAME");
} else {
System.out.println("Keep trying");
}
}
});
反之亦然另一个组合框。