我的印象是触摸屏模拟鼠标事件,但是我该如何处理多个触摸事件?
我尝试添加一个带有 MouseMotionListener
的 JPanel
并将值输出到控制台。然而,我只获得第一次触摸屏幕的值。
然后我尝试将屏幕从中间分开,两边各有一个 JPanel
,两边各有一个单独的 MouseMotionListener
,每一个都输出到控制台。
在此配置中,我仍然只能在屏幕上看到第一根手指的值。
这是我目前所拥有的:
JPanel jPaneL = new JPanel();
jPaneL.setName("Left");
jPaneL.addMouseMotionListener(mouseMotionL);
jPaneL.setBounds(0, 0, 960, 1280);
jPaneL.setBackground(Color.BLACK);
JPanel jPaneR = new JPanel();
jPaneR.setName("Right");
jPaneR.addMouseMotionListener(mouseMotionR);
jPaneR.setBounds(960, 0, 960, 1080);
jPaneR.setBackground(Color.RED);
jFrame.add(jPaneL);
jFrame.add(jPaneR);
和我的 MouseMotionListener,L
和 R
完全一样。
private static MouseMotionListener mouseMotionX = new MouseMotionListener() {
@Override
public void mouseDragged(MouseEvent e) {
String s = ((JPanel) e.getSource()).getName();
System.out.println(s);
}
@Override
public void mouseMoved(MouseEvent e) {
String s = ((JPanel) e.getSource()).getName();
System.out.println(s);
}
};
我找到了支持多点触控的库,但我希望在不使用第三方库的情况下实现这一点。我如何才能仅使用 native 鼠标监听器来执行此操作?
最佳答案
首先,我想说,我真的会推荐将 JavaFX 用于此类应用程序。 您也可以integrate your JavaFX project在现有的 swing 应用程序中使用 JFXPanel。
但是我听说过MT4j这是 Java 应用程序中的多点触控框架,也支持 Swing。我没有使用它。所以我不能告诉你它有多好。
关于java - Swing 中的多点触控,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22158855/