我的 JTextField.requestFocus() 行为在 Mac OS X 上似乎有所不同。
这是我的情况:我有一个带有 JList 和 JTextField 的对话框。用户应该在文本字段中编写一个布尔表达式,该列表包含可能在表达式中输入的所有变量的名称。因为用户希望在单击列表中的变量后继续输入表达式,所以程序调用 JTextField.requestFocus() 很有帮助。这样,您可以例如从列表中单击“pvalue”,然后键入“< 0.05”,而无需单击其间的文本字段。
这一切在我的开发机器(Linux)上运行良好,但我从一个 Mac 用户那里得到了一个错误报告,点击列表实际上会选择文本字段中的所有文本,从而很容易意外覆盖之前输入的内容。
我怀疑这是 Mac 外观的问题,经过一番搜索,似乎确实有一个 Mac 外观的“Quaqua.TextComponent.autoSelect”属性似乎与这个问题有关:http://www.randelshofer.ch/quaqua/guide/jtextcomponent.html
我的一般问题是:
- 您能建议解决此问题的方法吗?
如果范围太广,对这些子问题的回答已经很有帮助:
- 一个可能的解决方案是更改属性“Quaqua.TextComponent.autoSelect”。我怎么做?
- 我什至不确定“Quaqua”是什么。它看起来像是一个定制的外观和感觉。Mac OS X 的默认外观是什么?它是否具有类似于 Quaqua.TextComponent.autoSelect 的属性?
- 是否有可能仅针对单个组件实例调整外观?如果是这样,怎么做?
- 是否可以在我的 Linux 开发机器上设置 Mac 的外观和感觉,以便我可以真正确认这个错误(以上所有内容都是基于预感和怀疑)?如果是这样,怎么做?