J'ai un JTextField, où je l'ai mis quelques propriétés personnalisées:Comment garder la frontière de point culminant d'une JComponent, lorsque bordure personnalisée est définie
nameField.setPreferredSize(new Dimension(275,40));
nameField.setBackground(bgColor);
nameField.setForeground(txtColor);
nameField.setFont(new Font("HelveticaNeue",Font.PLAIN,22));
nameField.setBorder(BorderFactory.createLineBorder(Color.WHITE, 2));
Lorsque le composant a le focus, il n'y a pas fort montré autour du terrain. Sur un Mac, il s'agit généralement d'un rectangle rougeoyant, indiquant que ce composant a un focus. Si je commente le nom name.Field.setBorder (...), la surbrillance réapparaît. Comment puis-je conserver le surlignement, mais aussi ma bordure personnalisée?
Fondamentalement, je veux juste que la bordure de mise en évidence apparaisse lorsque le composant a le focus, et pas de bordure lorsque le composant est flou.
Notez que la bordure d'origine est de type com.apple.laf.AquaTextFieldBorder
.
Vos deux réponses fonctionnent, dans une certaine mesure. Mais il y a un problème. La bordure d'origine semble être une bordure composée, avec le point culminant comme bordure extérieure, et une bordure de ligne blanche 1px comme l'intérieur. Je ne veux pas de la frontière intérieure! Note: J'ai sur OS X, et le type de la bordure d'origine est en fait com.apple.laf.AquaTextFieldBorder –