11

JButton があり、マウスのクリックをキャプチャしたいと考えています。JButton で ActionListener を使用する場合と MouseListener を使用する場合の実際的および哲学的な違いは何ですか?

4

3 に答える 3

15

ActionListener は、ボタンの論理的なクリックを処理するために使用されます。クリックが発生

  • ボタン上でマウスを押して離したとき、
  • または、そのボタンのキーボード ショートカットを使用すると、
  • またはボタンにフォーカスがあり、スペースバーが押されたとき、
  • または、ボタンがデフォルトのボタンで Enter キーが押されたとき、
  • または、ボタンの click() メソッドがプログラムで呼び出されたとき

MouseListener は、低レベルのマウス イベントのみを処理します。

于 2012-11-23T09:54:42.673 に答える
4

ボタンが押されたことだけを知りたい場合は、 を使用しますActionListener。チェックにマウスの状態 (マウスがボタンに入った、終了した) などのより深い分析が含まれる場合は、次を使用します。MouseListener

于 2012-11-23T09:55:21.610 に答える
3

基本的に、MouseListener は任意のクリックを拾うためのものです。ActionListener は、「ボタンを操作している誰か」をピックアップするためのものです。したがって、アクティブ化されているボタンに本当に関心がある場合は、ActionListener を使用してください。そうすれば、キーボードまたはその他のメカニズムを介してアクティブ化された場合にイベントを取得できます。

一方、特にクリックに関心がある場合は、MouseListener を使用する必要があります。たとえば、ボタンのどの部分をクリックしたか、アクティブ化できないものをクリックしたかなどです。

于 2012-11-23T09:55:44.763 に答える