2009-07-24 14 views
0

スイングでスタイラスを使用しているときに、私はいくつかの奇妙な動作が発生しています。スイングではマルチボタンプレスはどのように扱われますか?

スタイラスの側面にあるボタン(右)を押しながらスタイラスを下に押して(「左」)「グラブ」イベントとして解釈しますが、時には(0より多い場合があります)、イベントはドロップされます。

MouseDogのJavaDocsは、一度に1つずつ(左下、右下、右上、左上)実行された場合のマルチボタンプレスの処理方法をかなり明示していますが、

2つのmousePressedイベントとして放出されるのだろうか、または両方のボタンにボタンマスクが設定されているか、それとも完全に何かが放出されるのだろうか?

ありがとうございました。同時ボタンの押下は、単に可能ではないものとして

答えて

1

私はAPIドキュメントを解釈したい:複数のマウスボタンが押されたとき

、各プレス、リリース、およびは、別のイベントで結果をクリックしてください。

したがって、とは別のイベントです。あなたが観察する問題は、コード、スタイラスのドライバ、ハードウェア、またはスイングのエラーが原因である可能性があります(これは尤度の降順です)。

私はこの問題を診断しようとします。可能であれば、異なるレベルでイベントをロギングする。

+0

尤度の降順に関しては、通常は私も一緒に行くことを前提としています。私のコードの問題は、通常、Javaコードの誤解です。したがって、この最初の質問は、ドキュメントを読んだ後です。 –

1

同時ボタンプレスは、2つの別々のmousePressedイベントとして処理されます。 Mouse Events Demoを実行して、別々に処理されていることを確認します。

0

私が思い出しているように、同時にボタンを押すことはできません。一度に複数のボタンが押されたことを確実にするために私がしていたことは、各ボタンのブーリアン変数を持っていて、押されたときにそれを真に設定し、リリースされたときに、 booleanをfalseにします。次に、アクションを実行する時間が来たとき、私はブーリアン変数をチェックします(ブーリアンを設定した後に次に何が起こるかを決定するメソッド呼び出しにリダイレクトするactionlistenerを持っていることもあります)。あなたがしたいのは、同じ時間に押されているだけですが、もしあなたが単に組み合わせを働こうとしているのであれば、それは私のやり方です。これはJava 5より前の4年前のことでしたので、間違いかもしれません。

関連する問題