JLabel新系列不起作用

我在JLabelsetText()方法中遇到了一些意外的问题。

无论我做什么,它都无法在断言变量时设置新行。

我到目前为止所尝试过的

 Jabel l = new JLabel(); String string = new String(); string = var1+"\n"+var2; string = var1+"\r\n"+var2; string = var1+"
"+var2; l.setText(string);

您可以在JLabel中使用HTML,如在线教程中所述 ,您几乎可以正确使用它; 要包装的文本必须包含在HTML标记中,如:

 string = "" + var1 + "
" + var2 + "";

虽然使用StringBuilder实际构建字符串可能更好。

似乎对我来说工作得很好……

在此处输入图像描述

var1+"
"+var2;
没有任何意义,为了让JLabel知道它应该呈现什么, String应该以开头,其余的内容应该遵循标准HTML标记…

 import java.awt.Color; import java.awt.EventQueue; import java.awt.GridBagLayout; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JPanel; import javax.swing.UIManager; import javax.swing.UnsupportedLookAndFeelException; import javax.swing.border.LineBorder; public class Test1 { public static void main(String[] args) { new Test1(); } public Test1() { EventQueue.invokeLater(new Runnable() { @Override public void run() { try { UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName()); } catch (ClassNotFoundException | InstantiationException | IllegalAccessException | UnsupportedLookAndFeelException ex) { ex.printStackTrace(); } JFrame frame = new JFrame("Testing"); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.add(new TestPane()); frame.pack(); frame.setLocationRelativeTo(null); frame.setVisible(true); } }); } public class TestPane extends JPanel { public TestPane() { String someText = ""; StringBuilder sb = new StringBuilder(128); sb.append("
"). append(someText).append("
"). append(someText).append(""); JLabel label = new JLabel(); label.setBorder(new LineBorder(Color.RED)); label.setText(sb.toString()); setLayout(new GridBagLayout()); add(label); } } }