У меня проблема с поведением JTextField.requestFocus (), которое в Mac OS X выглядит по-другому.
Вот моя ситуация: у меня есть диалог с JList и JTextField. Пользователь должен написать логическое выражение в текстовом поле, а список содержит имена всех переменных, которые могут быть введены в выражение. Поскольку ожидается, что пользователь продолжит вводить выражение после нажатия на переменную из списка, программа услужливо вызывает JTextField.requestFocus (). Таким образом, вы можете, например, щелкнуть «pvalue» в списке, а затем ввести «<0,05» без необходимости щелкать текстовое поле между ними. </p>
Все это прекрасно работает на моей машине для разработки (Linux), но я получил сообщение об ошибке от пользователя Mac, в котором щелчок по списку фактически выделяет весь текст в текстовом поле, облегчая случайную перезапись того, что было введено ранее.
Я подозревал, что это проблема с внешним видом Mac, после некоторого поиска кажется, что действительно существует свойство "Quaqua.TextComponent.autoSelect" для внешнего вида Mac, которое, похоже, связано с эта проблема: http://www.randelshofer.ch/quaqua/guide/jtextcomponent.html
Мой общий вопрос:
- Можете ли вы предложить решение этой проблемы?
В случае, если это слишком широкий, ответ на эти подвопросы уже будет большая помощь:
- Возможным решением может быть изменение свойства "Quaqua.TextComponent.autoSelect". Как я могу это сделать?
- Я даже не уверен, что такое "Quaqua". Похоже, что это индивидуальный внешний вид. Каков внешний вид по умолчанию для Mac OS X? Есть ли у него свойство, похожее на Quaqua.TextComponent.autoSelect?
- Есть ли возможность настроить внешний вид только для одного экземпляра компонента? Если да, то как?
- Можно ли настроить внешний вид Mac на моей машине для разработки Linux, чтобы я мог действительно подтвердить эту ошибку (все вышесказанное действительно основано на догадках и подозрениях)? Если да, то как?