- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在实现一些扩展 JDialog 的对话框窗口,并且需要实现一些键盘快捷键,例如:
class MyDialog extends JDialog implements KeyListener
{
/** Constructor
*
*/
public MyDialog() {
super();
// add keyboard shortcuts:
addKeyListener(this);
setFocusable(true);
}
// ---------------------------------------------------------
// Keyboard shortcuts
// ---------------------------------------------------------
public void keyReleased(KeyEvent e) {}
public void keyTyped(KeyEvent e) {}
public void keyPressed(KeyEvent e)
{
System.out.println(e);
if ((e.getKeyCode() == KeyEvent.VK_W) && ((e.getModifiers() & Toolkit.getDefaultToolkit().getMenuShortcutKeyMask()) != 0)) {
dispose();
}
}
}
然后我有几个不同类型的对话框扩展了 MyDialog。当键盘快捷键被触发时,我在控制台上得到以下输出:
java.awt.event.KeyEvent[KEY_PRESSED,keyCode=157,keyText=?,keyChar=Undefined keyChar,modifiers=?,extModifiers=?,keyLocation=KEY_LOCATION_LEFT,rawCode=0,primaryLevelUnicode=0,scancode=0] on dialog0
java.awt.event.KeyEvent[KEY_PRESSED,keyCode=87,keyText=W,keyChar='w',modifiers=?,extModifiers=?,keyLocation=KEY_LOCATION_STANDARD,rawCode=0,primaryLevelUnicode=0,scancode=0] on dialog0
2013-02-10 19:24:28.716 java[10029:2707] Attempt to call non-applicable method "keyCode" on SyntheticEvent!
2013-02-10 19:24:28.718 java[10029:2707] (
0 CoreFoundation 0x00007fff90e5f0a6 __exceptionPreprocess + 198
1 libobjc.A.dylib 0x00007fff9617b3f0 objc_exception_throw + 43
2 CoreFoundation 0x00007fff90e5ee7c +[NSException raise:format:] + 204
3 libawt.jnilib 0x0000000110e3564b -[SyntheticEvent keyCode] + 58
4 libawt.jnilib 0x0000000110e397a4 -[NSViewAWT performKeyEquivalent:] + 507
5 AppKit 0x00007fff938793c9 -[NSView _performKeyEquivalent:conditionally:] + 41
6 AppKit 0x00007fff93879512 -[NSView performKeyEquivalent:] + 166
7 AppKit 0x00007fff938793c9 -[NSView _performKeyEquivalent:conditionally:] + 41
8 AppKit 0x00007fff93879329 -[NSWindow performKeyEquivalent:] + 64
9 AppKit 0x00007fff93879114 -[NSApplication _handleKeyEquivalent:] + 462
10 AppKit 0x00007fff93c29232 -[NSWindow keyDown:] + 89
11 Foundation 0x00007fff91965677 __NSThreadPerformPerform + 225
12 CoreFoundation 0x00007fff90dde101 __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE0_PERFORM_FUNCTION__ + 17
13 CoreFoundation 0x00007fff90dddaed __CFRunLoopDoSources0 + 445
14 CoreFoundation 0x00007fff90e00dc5 __CFRunLoopRun + 789
15 CoreFoundation 0x00007fff90e006b2 CFRunLoopRunSpecific + 290
16 HIToolbox 0x00007fff8b4430a4 RunCurrentEventLoopInMode + 209
17 HIToolbox 0x00007fff8b442e42 ReceiveNextEventCommon + 356
18 HIToolbox 0x00007fff8b442cd3 BlockUntilNextEventMatchingListInMode + 62
19 AppKit 0x00007fff93655613 _DPSNextEvent + 685
20 AppKit 0x00007fff93654ed2 -[NSApplication nextEventMatchingMask:untilDate:inMode:dequeue:] + 128
21 libawt.jnilib 0x0000000110de6fcf -[NSApplicationAWT nextEventMatchingMask:untilDate:inMode:dequeue:] + 124
22 AppKit 0x00007fff9364c283 -[NSApplication run] + 517
23 libawt.jnilib 0x0000000110de5680 +[AWTStarter startAWT:] + 1495
24 libawt.jnilib 0x0000000110de4ffa -[CPerformer perform] + 93
25 Foundation 0x00007fff91965677 __NSThreadPerformPerform + 225
26 CoreFoundation 0x00007fff90dde101 __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE0_PERFORM_FUNCTION__ + 17
27 CoreFoundation 0x00007fff90ddda25 __CFRunLoopDoSources0 + 245
28 CoreFoundation 0x00007fff90e00dc5 __CFRunLoopRun + 789
29 CoreFoundation 0x00007fff90e006b2 CFRunLoopRunSpecific + 290
30 java 0x0000000107c97843 java + 18499
31 java 0x0000000107c9729a java + 17050
32 java 0x0000000107c94a98 java + 6808
)
前两件事是 println 语句,看起来很正常。我不知道 SyntheticEvent 的意思是什么,并且在 Google 上没有成功。谁能指出我正确的方向 - 这有什么问题吗?此后窗口正常处理。
谢谢!
最佳答案
关于KeyListener 上的 Java SyntheticEvent,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14804347/
这个问题已经有答案了: ReactJS: Can I create my own SyntheticEvent? (3 个回答) 已关闭 1 年前。 如何创建自己的 React SyntheticEv
检查任何类型的给定对象是否是 SyntheticEvent 的最佳方法是什么? ? 目前,我正在研究内部结构: if (obj.nativeEvent ) { // 100% sure...w
我正在开发一个没有任何输入/选择元素的组件,但我希望它表现得像一个组件,调度与 React 输入相同的事件,期望有这样的工作: 在该示例中,input 和 MyComponen
我正在实现一些扩展 JDialog 的对话框窗口,并且需要实现一些键盘快捷键,例如: class MyDialog extends JDialog implements KeyListener {
在 vanilla React 中你得到 currentTime 就像 (e) => e.target.currentTime 在 typescript 中执行上述操作 ^3.1.6 结果 Prope
我有一个包含多个 input 的容器盒子(具有不同的属性)。我想改变所有这些的按键行为。我想知道是否有比手动放置更好的方法 onKeyDown={this.handleKeydown}每个的属性(pr
我正在使用 ReactJS,它是 SyntheticEvent 来跟踪事件及其目标 DOM 节点。 我正在创建一些可变组件,我希望它们触发 SyntheticEvent 以跟踪 DOM 并使用 e.t
我需要编写一个测试来模拟点击人字形来更改页面。 onClick 发生时调用的函数有一个合成事件处理程序作为参数,我需要一些方法来模拟这个事件处理程序(或重写具有相同功能的代码)。我目前收到错误 类型错
我使用两个库,一个发出“原始”DOM 事件 (lib.dom.d.ts) 的库,另一个使用 React.SyntheticEvents 的库. 的最佳方式是什么?干净利落将原始事件转换为 Synthe
我正在尝试在 ReactJS 组件中使用 event.stopPropagation() 来阻止点击事件冒泡并触发遗留代码中 JQuery 附加的点击事件,但似乎 React 的 stopPropag
系统信息: OSX 10.12.4 Sierra Node v7.10.0 npm v4.2.0 已测试的浏览器: Chrome 58.0.3029.110 Safari 10.1 Firefox 5
在我的 react-typescript-electron 项目中,我有: "devDependencies": { "@types/react": "^17.0.0", "@types/re
我是一名优秀的程序员,十分优秀!