当按住键时,Swing中的文本输入字段在OS X上停止工作

我在OS X Yosemite上使用Swing文本输入字段发现了一个奇怪的问题(使用Oracle JDK 8)。 当我在文本输入字段具有焦点时按住任何字母或数字键时,我之后可以不再在当前JFrame的任何字段中输入任何内容。 然后我必须关闭框架并重新打开它才能再次输入文本。

OS X中的默认行为是调出一个小菜单,以便在按住某个键较长时间时选择特殊字母。 我猜Swing输入确实存在问题。

还有其他人也注意到这一点,并且有解决这个问题的方法吗?

编辑:我已经了解到可以通过将标志ApplePressAndHoldEnabled设置为false来禁用字符重音菜单。

 defaults write -g ApplePressAndHoldEnabled -bool false 

但是,我想在Java中以编程方式解决此问题,因此文本输入字段也适用于使用我的软件的其他人。

谢谢

这似乎是OS X本身的一个问题。 重新启动Mac后,问题现在已经消失。

我一直有这个确切的问题。 我很沮丧,我的JFrame中的所有输入文本字段都会停止工作。 直到今天才发现它与苹果的重音字符弹出相关。 对我来说,这个问题只发生在我长按其中一个带有相关重音字符的键(例如:a,c,e,u,n,…)时,而帧中的焦点位于一个组件上没有文字输入(例如按钮或面板)。 仍在寻找一个合适的解决方案,以程序方式在程序本身内修复它,但这是一个我意外发现的解决方法:

每当问题发生并且键停止工作时,我首先点击框架中的任何“文本字段”使其聚焦,然后我按住重点弹出窗口中的任何一个键(例如“a”键),直到弹出窗口显示。 然后我只是在所有按键重新开始工作后点击逃生并从那里开始。

奇怪的是,一旦我经历了这一次,这个问题就不会再发生在那个框架上,直到下一次框架关闭和打开。