2

javax.swing.JButton特定の(通常の押しボタン)が(離される前に)押されているかどうかを確認したいと思います。ボタンが押されているかどうかを確認するオプションはありますか?

最も単純な解決策はMouseListener、マウスのクリックおよびリリース イベントに応答する を追加することです。ただし、ボタンが Enter キーまたはその他の方法でアクティブ化された場合は、この限りではありません。キーボードやその他の方法によるマウスのアクティブ化を無効にしたくありません。動作を制限せずに、マウスがいつ押されたかを知りたいだけです。

さまざまなイベントをすべてリッスンしてみましたが、ボタンの押下に応答するのは ActionPreformed ( ActionEvent) と StateChanged ( ChangedEvent) イベントの 2 つだけです。ActionPreformed はクリックごとに 1 回実行されます。つまり、ボタンが押されて離された後にのみ実行されるため、良くありません。ボタンをクリックすると StateChanged が実際に数回呼び出され、ボタンを離すと数回呼び出されます。ただし、イベント オブジェクトにはソース ウィジェット (ボタン) に関する情報のみが含まれ、状態変更自体に関する情報は含まれません。これにより、キャッチしたいイベントを区別することができなくなります。

前もって感謝します!

4

1 に答える 1

7

ButtonModelはそれを行うことができます。もっとここここか、あるいは@kleopatraによるトピック外のJMenuItem&ChangeListener

于 2011-09-21T19:38:21.387 に答える