1

大学からこの課題があり、インターフェイスに 5 つのボタンが必要で、ボタンをクリックすると、そのボタンでアクションを実行する必要があります。しかし、actionPerformed() で「this」を使用すると、「クリックされたボタン」が参照されず、実際に参照されているものをワークアウトできません。

そう:

  1. ActionPerformed()アクションハンドラで「これ」とは何を指しますか?
  2. 「e.getActionCommand()」を使用して、一連のifステートメントを使用せずに、「クリックされた」ボタンで何かを行う良い方法はありますか?
4

1 に答える 1

6

ActionEvent によって継承されるEventObject#getSource()を使用できます。

@Override
public void actionPerformed(ActionEvent e) { 
    JButton source = (JButton) e.getSource();
    ...
}

ActionListener 内でthisは、ソース オブジェクトではなく、ActionListener オブジェクト自体を参照します。

于 2012-10-30T18:28:51.290 に答える