Comment faire pour que le texte d'un JLabel s'étende sur une autre ligne?
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);
si vous voulez que votre jLabel Text se redimensionne automatiquement, par exemple dans une grille extensible, il suffit de mettre son texte dans des balises HTML comme suit
JLabel label = new JLabel("<html>First line and maybe second line</html>");
Tapez le contenu (c'est-à-dire le champ de propriété "text") dans une balise <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 s'affichera comme suit:
Scintille, scintille, petite étoile,
Comment je me demande ce que vous êtes.
Au-dessus du monde si haut,
Comme un diamant dans le ciel.
Vous pouvez également utiliser un JXLabel from la bibliothèque SwingX .
JXLabel multiline = new JXLabel("this is a \nMultiline Text");
multiline.setLineWrap(true);
J'ai utilisé JTextArea pour JLabels multilignes.
JTextArea textarea = new JTextArea ("1\n2\n3\n"+"4\n");
http://docs.Oracle.com/javase/7/docs/api/javax/swing/JTextArea.html
Dans mon cas, il suffisait de scinder le texte à chaque \n
, puis de créer une 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
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 est possible de utiliser CSS (/ de base) dans le code HTML.
Cette question était liée à Multiline JLabels - Java .