从任何地方访问组合框值



我有两个组合框,我可以很好地从中获取值。问题是,我希望当两个框都处于特定值时,会发生一些事情。但是我无法在自己的侦听器之外访问任何一个盒子的值。

框的侦听器:

character_class.getSelectionModel().selectedItemProperty().addListener(new ChangeListener<String>(){
public void changed(ObservableValue<? extends String> ov, String old_val, String new_val){

也许我错过了一些简单的东西,因为我整天都在做这个项目,几乎没有休息时间,但我无法从其他任何地方访问new_val,除了在听众之后。尝试将其公开失败,因为出于某种原因,它只允许final作为修饰符。

对于两个更改侦听器,只需获取其他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");
}
}
});

反之亦然。

最新更新