2017-01-17 3 views
-1

私は2つのクラスAとBを持っています。最初の1つでは、いくつかのアイテムでコンボボックスがあり、2番目のクラスで選択したアイテムを取得したいと思います。 (B)(特定のボタンをクリックすることによって)。ComboBoxのゲッターを使用すると偽の値が返される

私はcomboBoxのゲッターを作成しましたが、2番目のクラスのゲッターを呼び出すたびに、選択されていなくても最初の項目が表示されます。ここで

はゲッター(第一級(A))のコードです:

public String getModuleSelected(){ 
     return comboModule.getSelectedItem().toString(); 
    } 

ここで私が選択した項目(クラスB)を取得する方法は次のとおりです。

A moy = new A(); 
System.out.println(moy.getModuleSelected()); 

それは常に非常に最初に表示さコンボボックスの項目。それが選択されていなくても。私は自分のクラス(A)でゲッターを試してみたところ、ボタンをクリックした後、正しい選択項目を得ました。しかし、私が別のクラスでそれを試してみると、私はItemを取得しますが、常に最初のクラスを取得します。ここで

+4

「このコードはなぜ機能しないのですか?」というこのタイプの質問は、問題を理解して適切に答えるためには、ほとんどの場合、作業用の[mcve]を作成して投稿する必要があります。これを検討してください。 –

+0

............こんにちは? –

答えて

3

はあなたの問題です:

A moy = new A(); // ******* this line**** 
System.out.println(moy.getModuleSelected()); 

あなたはそれが新Aオブジェクト、表示されるオブジェクト、その上で行わ任意の選択を持っていないのと同じではないものを作成し、しています表示されているオブジェクトと同じ状態ではありません。 オブジェクトを新規に作成するのではなく、現在表示されているアクティブなAオブジェクトのgetModuleSelected()を呼び出すのがこの解決策です。このオブジェクトへの有効な参照を取得する必要があります。MCVEがお手伝いします。これは、コンストラクタまたはセッタメソッドのパラメータによって行われることが多いことに注意してください。

関連する問題