0
我編寫了一個Swing GUI,它在JMenuItems上使用KeyAccelerators。長按觸發加速器的按鍵會導致EventQueue堆棧命令並阻止GUI。我希望AWT Event Queue不要在其中包含多個(或兩個)帶有Control Modifier的KeyEvent。我試過這個:防止AWT事件隊列超載
AWTEvent awtevent = Toolkit.getDefaultToolkit()
.getSystemEventQueue().peekEvent();
if (awtevent != null) {
String paramString = awtevent.paramString();
if ((paramString.indexOf("modifiers=Ctrl") != -1 && ((KeyEvent) event)
.isControlDown())) {
((KeyEvent) event).consume();
} else if (paramString.indexOf("modifiers=Ctrl") != -1
&& (paramString.indexOf("keyChar=Undefined") != -1)) {
((KeyEvent) event).consume();
}
}
但它非常不可靠,因爲它有時會消耗一個不應該被消耗的事件。
另請參閱此[問與答](http://stackoverflow.com/q/3158254/230513)。 – trashgod 2014-10-10 22:10:56