java - Swing 中的多点触控

标签 java swing multi-touch

我的印象是触摸屏模拟鼠标事件,但是我该如何处理多个触摸事件?

我尝试添加一个带有 MouseMotionListenerJPanel 并将值输出到控制台。然而,我只获得第一次触摸屏幕的值。

然后我尝试将屏幕从中间分开,两边各有一个 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,LR 完全一样。

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/

相关文章:

java - 改变内容的顺序辅助 Android 开发的 Eclipse

java - 添加到 JPanel 的组件按什么顺序绘制?

Swift 4 两个方向键与 spritekit

java - TestNG 软断言输出不符合预期

java - 如何将矩阵转换为带权重的二部图

java - 用各自的字段 Swing 排列标签

java - 我怎样才能让 JScrollPane 填充 JPanel 的高度

iphone模拟器使用多点触控问题

java - Hazelcast,记录缓存中发生更改的情况