Domanda

Il codice è simile a questo:

JTextField txt = new JTextField();
txt.setBorder(BorderFactory.createMatteBorder(2,2,2,2,Color.red));

Tuttavia, il campo di testo sta ignorando la mia chiamata a setBorder. Nessuna modifica di sorta.

dovessi sostituirlo con un JLabel (per esempio)

JLabel txt = new JLabel();
txt.setBorder(BorderFactory.createMatteBorder(2,2,2,2,Color.red));

vorrei vedere il bordo rosso.

Qualcuno può dirmi perché? O meglio ancora spiegarmi come aggiungere un bordo in JTextField?

È stato utile?

Soluzione

Scopri questa spiegazione / raccomandazione della API Java

  

In generale, quando si desidera impostare un   frontiera su un componente Swing di serie   diverso da JPanel o JLabel, abbiamo   consiglia di inserire la componente   in un JPanel e impostare il confine sul   JPanel.

Quindi ... si dovrebbe nido tuo JTextField in un JPanel o JLabel, e mettere il confine sul JPanel o JLabel. Voila!

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top