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标签来做到这一点