J'ai un problème avec le comportement JTextField.requestFocus() qui semble être différent sous Mac OS X.Mac problèmes L & F: comportement des JTextField.requestFocus Diffère()
Voici ma situation: j'ai un dialogue avec un JList et un JTextField. L'utilisateur est censé écrire une expression booléenne dans le champ de texte, et la liste contient les noms de toutes les variables qui pourraient être entrées dans l'expression. Étant donné que l'utilisateur doit continuer à entrer l'expression après avoir cliqué sur une variable de la liste, le programme appelle utilement JTextField.requestFocus(). De cette façon, vous pouvez, par exemple, cliquer sur "pvalue" dans la liste, puis taper "< 0.05" sans avoir à cliquer sur le champ de texte entre les deux. Tout fonctionne très bien sur ma machine de développement (Linux), mais j'ai reçu un rapport de bogue d'un utilisateur Mac qui en cliquant sur la liste sélectionne tout le texte dans le champ de texte, ce qui facilite l'écrasement accidentel de ce qui a été saisi auparavant .
Je pensais que c'était un problème avec le look-and-feel de Mac, après quelques recherches, il semble qu'il existe en effet une propriété "Quaqua.TextComponent.autoSelect" pour le look-and-feel mac qui semble être lié à ce problème: http://www.randelshofer.ch/quaqua/guide/jtextcomponent.html
Ma question générale est:
- Pouvez-vous suggérer une solution à ce problème?
Dans le cas qui est trop large, une réponse à ces questions secondaires serait déjà une grande aide:
- Une solution possible pourrait être de changer la propriété « Quaqua.TextComponent.autoSelect ». Comment je fais ça?
- Je ne suis même pas sûr de ce qu'est "Quaqua". Il semble que ce soit un aspect personnalisé. Quelle est l'apparence par défaut de Mac OS X? A-t-il une propriété similaire à Quaqua.TextComponent.autoSelect?
- Existe-t-il une possibilité de modifier l'apparence d'une seule instance de composant? Si c'est le cas, comment?
- Est-ce qu'il est possible de configurer l'apparence du Mac sur ma machine de développement Linux pour que je puisse réellement confirmer ce bug (tout ce qui précède est vraiment basé sur des intuitions et des soupçons)? Si c'est le cas, comment?
C'est utile, mais il semble que Quaqua est un look and feel, pas nécessairement ce que mes utilisateurs utilisent. – amarillion
Oui, il s'agit d'une extension de la version par défaut de MacOS L & F, qui modifie malheureusement également le comportement des composants (par exemple, en sélectionnant le contenu de TextFields focus) et non seulement modifie le L & F réel. Je me rends compte qu'il est difficile pour vous de faire face à tout cela dans votre application, mais vous pouvez au moins suggérer aux utilisateurs de Quaqua de définir la propriété système en externe (-DQuaqua.TextComponent.autoSelect = false) lors du démarrage de l'application. – jarnbjo