JLabel中的多行文本

我怎样才能使JLabel的文本扩展到另一行?

你可以通过在代码中添加HTML来实现,所以:

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

如果你想让你的jLabel文本自动resize,例如在一个可伸缩的gridbaglayout中,只要把它的文本放在html标签中就可以了:

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

<html></html>标签内input内容(即“text”属性字段)。 所以你可以使用<br>或者<P>插入换行符。

例如:

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

它将显示如下:

一闪一shiny晶晶,
我多么想知道你是什么。
高于这个世界如此之高,
就像天上的钻石一样。

您也可以使用SwingX库中的JXLabel 。

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

就我而言,在每个\n分割文本就足够了,然后为每一行创build一个JLabel

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

我在上面的JOptionPane.showMessageDialog

可以在HTML中使用(基本)CSS 。


这个问题是从Multiline JLabels – Java链接的。

我已经使用JTextArea多行JLabels。

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

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

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

为什么你给复杂的东西…你可以通过把“\ n”而不是html标签来做到这一点