Java中Mac OS x上的重量级组件

2020年11月30日 71点热度 0条评论

我有一个基本上包含在浏览器中运行的applet的应用程序。
我一直在验证适用于Mac OS X的此应用程序,但遇到一个焦点问题,而该问题在Windows或Linux中不会发生。

例如,每当我使用JFileChooser选择目录来保存文件时,就会发生此问题。选择目录并在JFileChooser中按“确定”后,如果我正在Linux的Windows中运行该应用程序,则焦点将回到打开JFileChooser所在的applet。
但是在Mac OS X上,当我完成使用JFileChooser并将其关闭(或按OK)时,焦点不会回到小程序。在这种情况下,我需要单击Applet内的某个位置以将焦点放回该位置。这不仅在我使用JFileChooser时发生,而且在每次我使用“重量级”组件时发生。

我想知道这是否是一个已知问题,是否需要使用例如requestFocus()处理?你们当中有人对此有疑问吗?

解决方案如下:

“由于此方法的焦点行为取决于平台,因此强烈建议开发人员在可能的情况下使用requestFocusInWindow。”

在此处查看答案:java applet not grabbing focus in JRE 1.6.0_29 and up (OS X)

(我用谷歌搜索:“ osx浏览器小程序焦点问题”)