Texto Multilinha no JLabel

Como posso fazer o texto de um JLabel estender para outra linha?

Se você quiser que o seu texto jLabel seja redimensionado automaticamente, por exemplo, em um gridbag elástico, basta colocar o texto em tags html assim:

 JLabel label = new JLabel("First line and maybe second line"); 

Digite o conteúdo (ou seja, o campo de propriedade “text”) dentro de uma tag . Então você pode usar o
ou

para inserir uma nova linha.

Por exemplo:

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

Ele será exibido da seguinte maneira:

Brilha Brilha Estrelinha,
Como eu me pergunto o que você é.
Acima do mundo tão alto,
Como um diamante no céu.

Você também pode usar um JXLabel da biblioteca SwingX .

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

Eu usei JTextArea para JLabels de múltiplas linhas.

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

http://docs.oracle.com/javase/7/docs/api/javax/swing/JTextArea.html

No meu caso, foi o suficiente para dividir o texto em cada \n e, em seguida, criar um JLabel para cada linha:

 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); } 

Eu usei acima em um JOptionPane.showMessageDialog

É possível usar CSS (básico) no HTML.


Esta questão foi originada do Multiline JLabels – Java .

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

por que você está dando coisas complexas … você pode fazer isso colocando “\ n” em vez de tags html