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;
}