私の質問は、EclipseとSwingWindowBuilderプラグインに固有のものです。
単純なSwingアプリを作成するために、私は通常、クラスを作成してJFrameを拡張します。Swingコンポーネントをプライベートクラス変数にします。これにより、次のようにActionListenersを追加し、actionPerformed()の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プラグインはSwingコンポーネント変数を作成します。プライベートクラス変数ではなく、コンストラクター(public MyClass())と見なされるものを推測します。その結果、スコープが原因で、Swing変数がactionPerformed()に表示されないため、以前のようにActionListenersを使用できません。
誰かがこれをどのように克服できるかアドバイスできますか?