我的JavaFX应用程序创建了一个对话框作为第二个self.acQuery = HKAnchoredObjectQuery(type: sampleType,
predicate: pred,
anchor: self.acAnchor,
limit: Int(HKObjectQueryNoLimit),
resultsHandler: { (query, newSamples, deletedSamples, newAnchor, error) in
self.updateHeartRates(newSamples: newSamples, deletedSamples: deletedSamples, newAnchor: newAnchor, error: error);
})
,我的JemmyFX测试间歇性地无法单击该对话框中的控件。
在我的Ubuntu Linux工作站上以大约10%的速率发生故障,但这在Windows上完美运行。
失败的近端原因似乎是JemmyFX在错误的地方点击鼠标。我挖了这个,坏点击坐标似乎是由来自拥有Stage
的{{1}}对象的不正确的窗口坐标引起的。
因此,我创建了一个演示问题的最小应用程序和测试,它实际上以比实际应用程序(约50%)更高的更高速率失败。
以下是申请表:
Window
以下是测试:
Scene
我真的不想在Windows上开发我的测试。
我最近在JebuyFX(8,8u,8u-dev)中编译并在Ubuntu 14.04上的Java8u101上运行时观察了所有这些。
答案 0 :(得分:1)
似乎它是JavaFX(https://bugs.openjdk.java.net/browse/JDK-8166414)中的一个错误。它在JemmyFX方面无法解决。
P.S。在可观察的时间内修复它是不太可能的。所以我可能只建议使用一些丑陋的解决方法,比如在收到错误的对话框之后恢复正确的对话框坐标(例如,在第二次调用坐标属性监听器时通过附加的centerOnScreen())。