setBorder sur JTextField ne fonctionne pas? ou le fait?
-
21-09-2019 - |
Question
Le code est comme ceci:
JTextField txt = new JTextField();
txt.setBorder(BorderFactory.createMatteBorder(2,2,2,2,Color.red));
Cependant, le champ de texte ne tient pas compte de mon appel à setBorder
.
Aucun changement que ce soit.
Je devais le remplacer par un JLabel
(par exemple)
JLabel txt = new JLabel();
txt.setBorder(BorderFactory.createMatteBorder(2,2,2,2,Color.red));
Je verrais la frontière rouge.
Quelqu'un peut-il me dire pourquoi? Ou encore mieux me expliquer comment ajouter une bordure dans le JTextField
?
La solution
Consultez cette explication / recommandation de l'API Java
En général, lorsque vous souhaitez définir un frontière sur un composant standard Swing autre que JPanel ou JLabel, nous recommandez que vous mettez le composant dans un JPanel et définir la frontière sur la JPanel.
Alors ... vous devriez nid votre JTextField dans un JPanel ou JLabel, et mettre la frontière sur le JPanel ou JLabel. Le tour est joué!