Cas*_*ato 8 java macos swing drag-and-drop keyevent
OSX上的Java 6/7中存在一个错误,在拖放操作期间,它会忽略META(CMD)密钥.(Ctrl键在Windows上运行正常,在OSX上也忽略Ctrl键)我真的需要这个工作.
我尝试将KeyEventDispatcher侦听器添加到KeyboardFocusManager,但在Drag操作期间不会调用它.
也不会调用父JPanel的processKeyEvent()方法.
那么,有什么地方可以放钩来检测META按键吗?
在 DragGestureEvent 上您可以获得修饰符。e.getTriggerEvent().getModifiersEx()javadoc 状态:
扩展修饰符表示事件发生后所有模式键的状态,例如 ALT、CTRL、META 和鼠标按钮。
这段代码在 OSX 上对我有用:
public void dragGestureRecognized(DragGestureEvent e)
{
boolean isMetaDown = InputEvent.META_DOWN_MASK == (e.getTriggerEvent().getModifiersEx() & InputEvent.META_DOWN_MASK));
System.out.println("metaDown:"+isMetaDown);
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
353 次 |
| 最近记录: |