2012-02-07 20 views
3

自分のコードにComboFieldEditorの1つを作成しました。その値をPreferenceストアに保存する前に値を取得します。 StringFieldEditorの場合、getStringValue()のような1つの方法があります。しかし、ComboFieldEditorの場合、そのような方法はありません。私はそれらの値をどのように取得して使用できますか?ComboFieldEditorの値はどのように取得できますか?

答えて

2
 combofieldeditor.setPropertyChangeListener(new IPropertyChangeListener() { 

     @Override 
     public void propertyChange(PropertyChangeEvent event) { 
      System.out.print(event.getNewValue()); 
     } 
    }); 

getNewValueは、ユーザーが選択した値を提供します。代わりに、ストアを呼び出してプリファレンスストアから読み込むこともできます。

2

@codejammer - あなたの(最初の)解決策は何らかの理由で機能しません(FieldEditorPreferencePage自体がリスナーとして設定されている可能性が高いためです)。

私の解決策は、環境設定ページクラスがFieldEditorPreferencePageを継承している場合、propertyChange関数をオーバーライドすることです(スーパークラスからこの関数を実行することを忘れないでください)。 propertyChangeでは、どのフィールドがイベント(PropertyChangeEvent.getSource())になっているかを確認し、新しい値(PropertyChangeEvent.getNewValue())を取得できます。

@Override 
public void propertyChange(PropertyChangeEvent event) { 
super.propertyChange(event); 
if(event.getSource() == myCombo){ 
      //do your stuff here, or store new value in variable 
    System.out.println(event.getNewValue()); 
} 
} 
+0

ありがとうございました!私はすでにコンボを使用して、自分ですべての保管と積み込み作業を行うことを検討していました。 codejammerのソリューションも私のためには機能しません。 – bugybunny

関連する問題