私はJButtons
「左」と「右」と呼ばれる2つを持っています。「左」ボタンは長方形オブジェクトを左に移動し、「右」ボタンは右に移動します。ActionListener
いずれかのボタンがクリックされたときのリスナーとして機能するクラスが 1 つあります。ただし、それぞれがクリックされたときに異なるアクションが発生するようにします。ActionListener
で、どちらがクリックされたかをどのように区別できますか?
14038 次
2 に答える
8
各ボタンにactionCommandを設定します。
// アクション コマンドを両方のボタンに設定します。
btnOne.setActionCommand("1");
btnTwo.setActionCommand("2");
public void actionPerformed(ActionEvent e) {
int action = Integer.parseInt(e.getActionCommand());
switch(action) {
case 1:
//doSomething
break;
case 2:
// doSomething;
break;
}
}
アップデート:
public class JBtnExample {
public static void main(String[] args) {
JButton btnOne = new JButton();
JButton btnTwo = new JButton();
ActionClass actionEvent = new ActionClass();
btnOne.addActionListener(actionEvent);
btnTwo.addActionListener(actionEvent);
btnOne.setActionCommand("1");
btnTwo.setActionCommand("2");
}
}
class ActionClass implements ActionListener {
@Override
public void actionPerformed(ActionEvent e) {
int action = Integer.parseInt(e.getActionCommand());
switch (action) {
case 1:
// DOSomething
break;
case 2:
// DOSomething
break;
default:
break;
}
}
}
于 2013-01-21T16:49:48.297 に答える
6
getSource()
で利用できるメソッドを使用すると、非常に簡単ActionEvent
です。
JButton leftButton, rightButton;
public void actionPerformed(ActionEvent e) {
Object src = e.getSource();
if (src == leftButton) {
}
else if (src == rightButton) {
}
}
于 2013-01-21T16:43:31.667 に答える