从任何地方访问组合框值

时间:2017-08-24 03:26:45

标签: java javafx combobox global-variables

我有两个组合框,我可以从中获取它们的值。问题是,我喜欢这样,当两个盒子都处于特定值时,会发生一些事情。但我无法在自己的听众之外访问任何一个盒子的价值。

盒子的监听器:

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

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

1 个答案:

答案 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");
            }
        }
    });

反之亦然另一个组合框。