Texte multiligne en JLabel

comment étendre le texte D'un JLabel sur une autre ligne?

68
demandé sur Michael Myers 2009-03-26 15:20:59

9 réponses

vous pouvez le faire en mettant HTML dans le code, donc:

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);
72
répondu tddmonkey 2009-03-26 12:49:24

si vous voulez que votre texte jLabel se redimensionne automatiquement par exemple dans un gridbaglayout étirable son assez juste pour mettre son texte dans les balises html comme cela:

JLabel label = new JLabel("<html>First line and maybe second line</html>");
15
répondu tObi 2012-05-07 22:32:03

tapez le contenu (c.-à-d. le champ de propriété" text") à l'intérieur d'une étiquette <html></html> . Vous pouvez donc utiliser <br> ou <P> pour insérer une nouvelle ligne.

par exemple:

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>";

il affichera comme suit:

Twinkle, twinkle, little star,

Comment je me demande ce que vous êtes.

Jusqu'au-dessus du monde, si haut,

Comme un diamant dans le ciel.

7
répondu Web Think 2016-09-14 16:36:59

vous pouvez également utiliser un JXLabel de la bibliothèque SwingX .

JXLabel multiline = new JXLabel("this is a \nMultiline Text");
multiline.setLineWrap(true);
4
répondu user2287966 2014-12-19 08:30:32

j'ai utilisé JTextArea pour les JLabels multilignes.

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

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

1
répondu Seseel Lybon 2015-11-05 19:52:59

dans mon cas, il suffisait de diviser le texte à chaque \n et de créer ensuite un JLabel pour chaque ligne:

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

j'ai utilisé ci-dessus dans un JOptionPane.showMessageDialog

1
répondu Dediqated 2016-06-29 12:05:37

il est possible de utiliser (basic) CSS dans le HTML.


cette question était liée à Multiline JLabels - Java .

0
répondu Andrew Thompson 2017-05-23 12:26:35
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);
0
répondu Harun ERGUL 2016-04-12 10:30:16

pourquoi vous donnez des choses complexes...vous pouvez simplement le faire en mettant "\n "au lieu de balises html

-6
répondu Nits 2013-07-09 08:20:35