2017-08-24 6 views
0

私は2つのコンボボックスを持っています。問題は、両方のボックスが特定の値になったときに何かが起こるようにしたいということです。しかし、私は自分自身のリスナの外にあるボックスの値にアクセスすることはできません。ボックスのどこからでもコンボボックスの値にアクセスします。

リスナー:私はいくつかの休憩で一日中、このプロジェクトに取り組んできたよう

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

は、たぶん私は、簡単な何かが欠けていますが、私はどこからでもnew_valにアクセスすることはできませんリスナーの後にそこ以外で。それを公開しようとすると、何らかの理由でfinalが修飾子としてしか使用できません。 ChangeListenersにの両方のために

答えて

2

、単に他の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"); 
      } 
     } 
    }); 

およびその逆を呼び出すことにより、特定の値に一致するかどうかを確認します。

+0

上記のコンボボックスが宣言されているため、下のコンボボックスが宣言されていますが、下のコンボボックスを参照しようとすると、解決できないというエラーが表示されます。 – hego64

+1

そして、すべてが宣言された後にchangelistenerを追加し、コードを表示します。あなたが投稿したすべてのもので、実際には何の仕事もありません。 – Steven

+0

うわー、大丈夫、私が言ったように、私はこの一日中、2つの休憩のように働いていました....それはリスナーが彼らの特定のコンボボックスの下で右である必要はなかったことをクリックしていなかった...いつものようにそれは私がちょうど逃す顔で私を見つめる簡単な何かです。ありがとう。 – hego64

関連する問題