0

我正在用 Java 编写一个小型应用程序,它将每分钟在我的屏幕上单击十个不同的位置,持续 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 回答