tdd*_*key 83
您可以通过在代码中放置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);
Run Code Online (Sandbox Code Playgroud)
tOb*_*Obi 14
如果你想让你的jLabel文本自动调整大小,例如在一个可伸缩的gridbaglayout中,只需将其文本放在html标签中就像这样:
JLabel label = new JLabel("<html>First line and maybe second line</html>");
Run Code Online (Sandbox Code Playgroud)
小智 7
在<html></html>标记内键入内容(即"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>";
Run Code Online (Sandbox Code Playgroud)
它将显示如下:
闪烁,闪烁,小星星,
我多么想知道你是谁.
在世界之上如此之高,
就像天空中的钻石一样.
JXLabel multiline = new JXLabel("this is a \nMultiline Text");
multiline.setLineWrap(true);
Run Code Online (Sandbox Code Playgroud)
小智 5
我已经将JTextArea用于多行JLabel。
JTextArea textarea = new JTextArea ("1\n2\n3\n"+"4\n");
Run Code Online (Sandbox Code Playgroud)
http://docs.oracle.com/javase/7/docs/api/javax/swing/JTextArea.html
这太可怕了。所有这些答案都建议添加到标签文本的开头,并且 Java 11(或更早版本)的 JLabel 文档中没有任何一个词表明如果标签的文本恰好以 开头,则对其进行不同的处理<html>。谁说这在任何地方都有效并且永远有效?将任意文本包装起来并将其交给 html 布局引擎,您可以获得巨大的惊喜。
我已经对建议 JTextArea 的答案投了赞成票。但我要指出的是,JTextArea 并不是一个简单的替代品;它只是一个替代品。默认情况下,它会扩展以填充行,这不是 JLabel 的行为方式。我还没有想出解决办法。
| 归档时间: |
|
| 查看次数: |
102710 次 |
| 最近记录: |