private JButton jBtnDrawCircle = new JButton("Circle");
private JButton jBtnDrawSquare = new JButton("Square");
private JButton jBtnDrawTriangle = new JButton("Triangle");
private JButton jBtnSelection = new JButton("Selection");
これらのボタンにアクションリスナーを追加して、メインメソッドから actionperformed
を呼び出し、ボタンがクリックされたときにプログラムで呼び出せるようにするには、どうすればよいでしょうか。
2つの方法
1. ActionListenerをクラスで実装し、 jBtnSelection.addActionListener(this);
後で、 public void actionPerformed(ActionEvent e)
というメソッドを定義しなければならないでしょう。 しかし、これを複数のボタンに対して行うと、 actionPerformed
メソッドが各イベントのソース(e.getSource()
)をチェックして、どのボタンからイベントが発生したか確認しなければならないため混乱する可能性があります。
2. 匿名の内部クラスを使用する。
jBtnSelection.addActionListener(new ActionListener() {)
public void actionPerformed(ActionEvent e) { 選択ボタンが押されたとき。
selectionButtonPressed();
}
} );
後で、 selectionButtonPressed()
を定義する必要があります。
これは、複数のボタンがある場合に有効です。なぜなら、アクションを処理するための個々のメソッドの呼び出しが、ボタンの定義のすぐ隣にあるからです。
また、2番目の方法では、選択メソッドを直接呼び出すことができます。 この場合、タイマーが切れたときなど、他のアクションが起こったときにも selectionButtonPressed()
を呼び出すことができます(ただしこの場合、メソッドの名前は selectionChanged()
など、別のものになるでしょう)。
これが機能する場合はidkですが、変数名を作成しました。
パブリックアブストラクトクラスのビープは、ActionListener {を実装しています。
public static void main(String [] args){。
JFrame f = new JFrame( "beeper");。
JButtonボタン= new JButton( "Beep me");。
f.setVisible(true);。
f.setSize(300、200);。
f.add(ボタン);。
button.addActionListener(new ActionListener(){。
public void actionPerformed(ActionEvent e){。
//ここにコードを挿入します。
}。
});。
}。
}。
``。