0

私は Java で小さなアプリケーションを作成しています。このアプリケーションは、画面上の 10 の異なる場所を毎分 10 分間クリックします。しかし、クリックする前に、画面をクリックして x & y 座標を配列リストに保存することで、クリックする場所を選択したいと考えています。

MouseInfo を使用して取得できることを読みましたが、マウスがクリックされたときに座標を取得したい (コンポーネント上にあることは含まれない場合があります)。では、どうやってこれを行うのですか?

画面全体を占めるシースルー コンポーネントを作成し、その方法で座標を取得する必要がありますか? または、これについてもっと良い方法はありますか?

4

2 に答える 2

4

これを試してください...

  1. MouseMovedイベントを使用して、マウスの位置を取得します。
  2. Rectangleクラスを使用して、ウィンドウまたはコンポーネントにRectangleをプロットし、値を保存します。
  3. MouseClickedイベントで、マウス移動イベントからxとyの値を取得し、長方形の配列と比較します。
  4. 値が範囲内にある場合は、アクションを実行します。(文法の間違いでごめんなさい。)

例:コードmousemovedイベント:

x=event.getX();
y=event.getY();

マウスクリックイベント:

// use Event object e or event to get value of 
x=event.getX();
y=event.getY();

// this is more easy than the mousemoved event..
for(...) {
    if(x > rectangle[i].getMin && rectangle[i].getMax < x
             && y > rectangle[i].getMin && rectangle[i].getMax < y)
    {
        // your action..
    }
    else
    {

    }
}
于 2011-08-27T04:27:57.463 に答える
0

半透明のウィンドウを画面のサイズ (ほとんど見えない) にすることにし、そのようにしてマウスの位置を収集しました。うまくいくように見えましたが、余分なコンポーネントをペイントする必要がないことを望んでいました.

要約(気にする人のために):

  • 窓を半透明にする
  • ユーザーは窓越しに見ることができ、好きな場所をクリックできます
  • マウス座標が収集されます
  • ウィンドウは破棄されます

これまでのところ、他の誰かがすぐに言及しない限り、これが私の最良の選択肢のようです:)

于 2011-08-28T06:55:15.973 に答える