Java 如何区分触摸板点击

Java 如何区分触摸板点击,java,mouseevent,Java,Mouseevent,我正在用Java为鼠标垫创建一个点击测试。我可以区分左键、右键和中键点击: if(evt.getButton()==3) // or 1 or 2 我似乎无法区分两个左撇子 在上图中,两个左撇子分别单击1和2。我试图通过调试和检查事件对象来查看单击时是否从它们那里获得了不同的值,但它们是相同的。对于键盘,可以通过获取keyplocation来区分两个Ctrl键或两个Shift键,可以通过单击来执行类似的操作吗?例如,不获取屏幕上单击的位置,而是按下了哪个按钮 private void for

我正在用Java为鼠标垫创建一个点击测试。我可以区分左键、右键和中键点击:

if(evt.getButton()==3) // or 1 or 2
我似乎无法区分两个左撇子

在上图中,两个左撇子分别单击1和2。我试图通过调试和检查事件对象来查看单击时是否从它们那里获得了不同的值,但它们是相同的。对于键盘,可以通过获取
keyplocation
来区分两个Ctrl键或两个Shift键,可以通过单击来执行类似的操作吗?例如,不获取屏幕上单击的位置,而是按下了哪个按钮

private void formMouseClicked(java.awt.event.MouseEvent evt) {
    System.out.println(evt.getButton());
    if (evt.getButton() == 3) {
        //3=right
        button1.setBackground(Color.GREEN);
        textField1.setText("Code : Right");
    } else if (evt.getButton() == 2) {
        //middle
        button6.setBackground(Color.GREEN);
        textField1.setText("Code : Middle");
    } else if (evt.getButton() == 1) {
        //1=left
        button5.setBackground(Color.GREEN);
        textField1.setText("Code : Left");
    } else {
        textField1.setText("Code : " + evt.getButton());
    }
}
以上是我到目前为止关于click的代码

我已经搜索了很多,但仍然找不到有帮助的信息。

你可以在下面的代码中找到

比如:

但是如果你想查看鼠标点击的位置

JavaSwing是一项古老的技术,它支持传统的鼠标滚轮旋转事件

所以我认为不可能在触摸板的不同位置产生不同的b/w点击



无法获取鼠标单击的位置

据我所知,没有办法做到这一点。当你点击触控板时,触控板会简单地呈现出鼠标1被按下的样子。键盘有不同的左/右移键码等。。。我不相信“触控板点击”和“鼠标1”有不同的键码


无论如何,为什么要添加只有笔记本电脑用户(和某些笔记本电脑用户)才能使用的功能。台式机呢?手机呢

谢谢。我已经编辑了这篇文章:)我不认为有什么不同,但也许你可以通过仔细聆听所有其他鼠标事件来发现一个。例如,当您单击按钮时,很可能不会同时移动光标,而单击键盘也可能会触发一个小的移动。但这也可能取决于鼠标垫的实现。查看所有鼠标事件并记录它们,看看会发生什么。谢谢。这似乎是一个有效的选择。我不是那样想的。我会继续努力,让自己接受更多的活动教育,并尝试一下:)我希望能够进行一些测试。假设你想买一台二手笔记本电脑,我想在usb上启动它(我使用的是MX linux),我的最新快照在桌面上有一个java程序,它给了我规格。然后我创建了一个键盘测试。是的,笔记本电脑没有相同的键盘,但我可以在屏幕上直观地看到钥匙是否关了。现在下一步是鼠标垫。我只是在添加一个功能性,因为它似乎已经完成了。你最好的选择是指示用户按顺序单击每个“左键单击”按钮。或者是一些特定于驱动程序/制造商的本机代码,但这不是我的专业领域Hanks cameron我将保留这一点作为选项2:)我将继续尝试Gamedroid首先提出的建议。
SwingUtilities.isLeftMouseButton(MouseEvent anEvent) 
SwingUtilities.isRightMouseButton(MouseEvent anEvent) 
SwingUtilities.isMiddleMouseButton(MouseEvent anEvent)
if(SwingUtilities.isLeftMouseButton(evt)){
// do your work
}
// same for right and middle mouse key