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?

Était-ce utile?

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é!

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top