有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

Raspberry Pi3b+上嵌入的java JavaFX:在触摸屏上多次按下后,错误的按钮被激活

我在一个树莓项目上工作。本项目的目的是使用树莓控制工业机器。为此,用户使用触摸屏

我的问题

我有一个带有几个按钮的屏幕(大约20个)。当我按下几个按钮时,按下了错误的按钮

我认为一个例子会更清楚:

^{tb1}$

Let's imagine that each cell are a button.

如果我按以下顺序:A,B,B,C,A,B,A。 激活的按钮有:A、B、B、B、B、B、A

我需要在每次触摸之间等待大约5秒钟,以避免此问题

我的研究

我在代码中添加了以下内容:

        stage.addEventFilter(TouchEvent.ANY, touchEvent -> {
            LOGGER.info("TOUCH : X = " + touchEvent.getTouchPoint().getX() + ", Y = " + touchEvent.getTouchPoint().getY());
        });

当我触摸屏幕时,会显示正确的坐标

事实上,在不应发生以下情况时,会引发此事件:

//b is a Button
            b.setOnAction(actionEvent -> {
                LOGGER.debug(b.getText() + " pressed.");
            });

The OnMouseClick event has the same problem.

我尝试过更换触摸屏,但问题不再出现

第二个触摸屏连接在DSI端口上,而导致问题的触摸屏连接在HDMI(+用于触摸的usb链接)上

它们的分辨率也有所不同,第一个(有问题)为1024x600,第二个(没有问题)为800x480

我承认我不知道如何纠正这个问题

我将Java11与JavaFX11一起使用

编辑:重试后:

        stage.addEventFilter(TouchEvent.ANY, touchEvent -> {
            LOGGER.info("TOUCH : X = " + touchEvent.getTouchPoint().getX() + ", Y = " + touchEvent.getTouchPoint().getY());
        });

我有一个结果:

2021-02-22 09:40:47 INFO  App:71 - TOUCH : X = 627.0, Y = 318.0
2021-02-22 09:40:47 INFO  App:71 - TOUCH : X = 627.0, Y = 318.0
2021-02-22 09:40:47 INFO  App:71 - TOUCH : X = 627.0, Y = 318.0
--
2021-02-22 09:40:47 INFO  App:71 - TOUCH : X = 705.0, Y = 300.0
2021-02-22 09:40:47 INFO  App:71 - TOUCH : X = 627.0, Y = 318.0
2021-02-22 09:40:47 INFO  App:71 - TOUCH : X = 705.0, Y = 300.0

前三个按钮在我按下按钮A时显示(例如),后三个按钮在我按下B时显示。但最后,根据我的程序,按钮A被按下两次,而实际上我按下了A,然后按下了B


共 (0) 个答案