2012-04-10 13 views
2

私の質問は、EclipseとSwing WindowBuilderプラグインに固有です。Java/Eclipse(WindowBuilderプラグイン) - Swing Action Listenersを効果的に使用するにはどうすればいいですか?

簡単なSwingアプリケーションを作成するために、私は通常、クラスを作成してJFrameを拡張します。私はSwingコンポーネントをプライベートクラス変数にします。 )

public class MyClass() extends JFrame implements ActionListener { 
    private JButton btnClickMe = new JButton("Click me"); 

    public MyClass() { 
     super("title"); 
     this.setLayout(null); 
     btnClickMe.setBounds(1,1,100,100); 
     this.add(btnClickMe); 
     btnClickMe.addActionListener(this); 
     this.setVisible(true); 
    } 

    public void actionPerformed(ActionEvent event) { 
     Object source = event.getSource(); 
     if(source == btnClickMe) { // do something } 
    } 

    public static void main(String[] args) { 
     new MyClass(); 
    } 
} 

デフォルトでWindowBuilderプラグイン私は、コンストラクタ(パブリックMyClassの(とみなされるもので推測Swingコンポーネント変数を作成します。これは私がActionListenerにを追加してのactionPerformedでSwingコンポーネントにアクセスすることができます()、次のように)、プライベートクラス変数ではなく。結果として、スコープのために、Swing変数はactionPerformed()には表示されないので、私が慣れ親しんだやり方でActionListenersを使用することはできません。

どのようにこれを克服できるかアドバイスできますか?

答えて

4

これらのローカル変数をフィールドにリファクタリングするのを止めるのはなぜですか? WindowBuilderのベストなことの1つは、手書きのコードをある程度解析することができることです。

さらに、コントロールのフィールド変数を作成するために、Window Builderに設定オプションがあります。 Eclipseで見る、Preferences->WindowBuilder->Swing->Code generation;)

+0

ありがとう、これは私の質問に答えました。私はEclipseを初めて使用しており、リファクタリング機能を使用したことはありません。完全に機能するようです。また、プラグインの設定をどこで見つけるかわからなかった。私は今後の環境設定を変更します。再度、感謝します。 – Andrew

+0

@Andrewよろしくお願いします。これが役に立ちましたら、回答をアップアップして受け入れられるとマークしてください;) – Bogdan

関連する問題