Question

Comment puis-je faire le texte d'un JLabel se prolonger sur une autre ligne?

Était-ce utile?

La solution

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

Autres conseils

si vous voulez que votre JLabel texte pour redimensionner automatiquement par exemple dans un étirables GridBagLayout sa juste assez pour mettre son texte dans les balises html comme ceci:

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

Tapez le contenu (à savoir le domaine de la propriété « texte ») dans une balise <html></html>. Vous pouvez donc utiliser <br> or<P> pour insérer un saut de 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 affiche comme suit:

Twinkle,
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 de < a href = "https://swingx.java.net/" rel = "nofollow"> bibliothèque SwingX.

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

Je l'ai utilisé pour JTextArea JLabels multilignes.

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

http://docs.oracle.com/ JavaSE / 7 / docs / api / javax / balançoire / JTextArea.html

Dans mon cas, il suffisait de diviser le texte à chaque \n puis créer 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);
}

je ci-dessus dans un JOptionPane.showMessageDialog

Il est possible de utilisation (de base) CSS dans le code HTML.


Cette question était liée de JLabels multilignes -. 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);

pourquoi vous donnez des choses complexes ... vous pouvez simplement le faire en mettant « \ n » au lieu de balises HTML

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top