Domanda

Come posso fare il testo di una JLabel estende su un'altra linea?

È stato utile?

Soluzione

È possibile farlo mettendo HTML nel codice, in modo da:

JFrame frame = new JFrame();
frame.setLayout(new GridLayout());
JLabel label = new JLabel("<html>First line<br>Second line</html>");
frame.add(label);
frame.pack();
frame.setVisible(true);

Altri suggerimenti

se si desidera che il testo JLabel per ridimensionare automaticamente per esempio in un estensibile GridBagLayout suo quel tanto che basta per mettere il suo testo in tag HTML in questo modo:

JLabel label = new JLabel("<html>First line and maybe second line</html>");

Immettere il contenuto (vale a dire, il "testo" campo proprietà) all'interno di un tag <html></html>. Così si può utilizzare <br> or<P> per inserire un ritorno a capo.

Ad esempio:

String labelContent = "<html>Twinkle, twinkle, little star,<BR>How I wonder what you are.<BR>Up above the world so high,<BR>Like a diamond in the sky.</html>";

Si mostrerà come segue:

Twinkle, Twinkle, Little Star,
Come mi chiedo che cosa siete.
Su di sopra del mondo così in alto,
Come un diamante nel cielo.

È inoltre possibile utilizzare un JXLabel da < a href = "https://swingx.java.net/" rel = "nofollow"> la SwingX libreria .

JXLabel multiline = new JXLabel("this is a \nMultiline Text");
multiline.setLineWrap(true);

Ho usato JTextArea per JLabels multilinea.

JTextArea textarea = new JTextArea ("1\n2\n3\n"+"4\n");

http://docs.oracle.com/ JavaSE / 7 / docs / api / javax / oscillazione / JTextArea.html

Nel mio caso è stato sufficiente per dividere il testo in ogni \n e quindi creare un JLabel per ogni riga:

JPanel panel = new JPanel(new GridLayout(0,1));
String[] lines = message.split("\n");
for (String line : lines) {
    JLabel label = new JLabel(line);
    panel.add(label);
}

ho usato in precedenza in un JOptionPane.showMessageDialog

E 'possibile (base) CSS nel codice HTML.


Questa domanda era legato da -. Java

String labelText ="<html>Name :"+name+"<br>Surname :"+surname+"<br>Gender :"+gender+"</html>";
JLabel label=new JLabel(labelText);
label.setVisible(true);
label.setBounds(10, 10,300, 100);
dialog.add(label);

il motivo per cui si stanno dando le cose complesse ... si può solo farlo mettendo "\ n" invece di tag html

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