Eclipse 3.1 + VisualEditor 1.1
JButtonを貼ってActionListenerを生成した場合、無名クラスを生成し、その中にイベント処理コードを書かせるような形式となっていました。
class MyFrame extends JFrame { private JButton okButton = null; ... private JButton getOkButton() { if (okButton == null) { okButton = new JButton(); okButton.setText("OK"); okButton.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent e) { System.out.println("actionPerformed()"); // TODO ... } }); } return okButton; } }
NetBeans 5.0
リスナー生成スタイルとして3パターン選択できるようになっていますが、僕のマシン環境ではどれを選択しても同じコード(匿名内部クラス)しか生成されませんでした。ちなみに設定した場所は[ツール]メニュー→[オプション]メニュー→[その他]→GUIビルダーのコード生成
- 匿名内部クラス
- 1つの内部クラス
- 主クラス
匿名内部クラスの生成スタイル
JButtonを貼ってActionListenerを生成した場合、無名クラスを生成しますが、その中ではボタンの変数名にちなんだprivateメソッドを呼ぶだけにして、イベント処理のロジックはそのprivateメソッドに書かせるようになっています。
class MyFrame extends javax.swing.JFrame { public MyFrame() { initComponents(); } private void initComponents() { okButton = new javax.swing.JButton(); ... okButton.setText("OK"); okButton.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { okButtonActionPerformed(evt); } }); ... } private void okButtonActionPerformed(java.awt.event.ActionEvent evt) { System.out.println("OK button pressed."); } private javax.swing.JButton okButton; }