我正在尝试使用多行文本制作Swing JLabel.它添加得很好,但换行没有通过.我该怎么做呢?或者,我可以只为JLabel指定一个最大宽度,并知道文本会换行,就像在div中一样吗?
private void addLegend() {
JPanel comparisonPanel = getComparisonPanel();
//this all displays on one line
JLabel legend = new JLabel("MMM FFF MMM FFFO O OOM M MMMM.\nMMM FFF MMM FFFO O OOM M MMMM.\nMMM FFF MMM FFFO O OOM M MMMM.\n");
comparisonPanel.add(legend);
}
Run Code Online (Sandbox Code Playgroud) 我有一个非常简单的JLabel文本很长.
父布局是GridBagLayout.
我希望包含Frame的宽度不超过某个值,比如160像素.
所以我将文本设置为"html",以便JLabel能够将文本包装成多行.
现在我只想"修复"JLabel的宽度.但我还没找到办法.
Jframe的最大大小,布局管理器不检查JLabel,所以我不知道是否有"简单"的解决方案.
这个非常简单的例子(只修复导入运行)显示了这种情况.
public class SSCE extends JFrame {
public static void main(String [] args) {
new SSCE().setVisible(true);
}
public SSCE() {
setLayout(new GridBagLayout());
GridBagConstraints gbc = new GridBagConstraints();
gbc.gridx = 0;
gbc.gridy = 0;
gbc.weightx = 1;
gbc.weighty = 1;
gbc.fill = GridBagConstraints.BOTH;
JLabel label = new JLabel("<html>one two three four five six seven eight nine ten eleven twelve thirteen");
add(label, gbc);
gbc.gridy=1;
JLabel label2 = new JLabel("other content");
add(label2, gbc);
pack();
}
}
Run Code Online (Sandbox Code Playgroud) 我做了一个java swing GUI.现在我想在其上显示静态消息,但消息是多行的,JLabel是单行.
如何显示该消息?
是否有JLabel的任何属性我们可以设置显示多行消息?
我是否必须为多条线路使用多个JLabel?
有没有其他方法可以显示该消息?