【发布时间】:2020-04-08 05:44:25
【问题描述】:
包SwingUtilities 有一个很好的函数convertMouseEvent,可以将一个组件上的鼠标事件转换为另一个组件上的鼠标事件:
MouseEvent convertedEvent = SwingUtilities.convertMouseEvent(originalComponent, event, otherComponent);
同时,JavaFX 中的MouseEvent 有一个方法copyFor 可以为另一个组件创建MouseEvent 的副本:
MouseEvent convertedEvent = e.copyFor(e.getSource(), otherComponent);
我想做一些类似的事情来将 JavaFx MouseEvent e 转换为 Swing 鼠标事件。
我找不到烘焙函数,所以我尝试编写自己的函数。不过,有两个字段我无法轻松转换:
- 标识事件的 ID 字段。我想我必须从
e.getEventType().getEventType().getName()手动转换 - 在 JavaFX 中,没有指示事件发生时间的“when”属性。看来我可以在这里使用当前系统时间
- 鼠标事件的修饰符。我不确定如何从 JavaFX 事件的属性中构建它们
有没有办法从e的属性中获取修饰符?
【问题讨论】:
标签: java swing javafx mouseevent