Mac OS X では異なるように見える JTextField.requestFocus() の動作に問題があります。
これが私の状況です。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 のルック アンド フィールを設定することはできますか (上記はすべて勘と疑いに基づいています)。もしそうなら、どのように?