有没有一种方法可以使System.lineSeparator()在JLabel字符串中工作?

时间:2019-10-29 20:40:52

标签: java string swing jlabel

我正在设置一个Java swing应用程序,并尝试使我的JLabel字符串完全显示为:

Geboortedatum

yy-mm-dd

我曾尝试制作字符串变量,并将其与中间的System.lineSeparator()放在一起。

String lineGeboorte =“ Geboortedatum”;         字符串lineDateFormat =“ YY-MM-DD”;

    //HHHMMMMMMMMMMMMM???????????????????
    String lineLabelGeboorte = lineGeboorte + System.lineSeparator() + lineDateFormat;
    lblGeboortedatum = new JLabel (lineLabelGeboorte);

    System.out.println(lineLabelGeboorte);
    lblGeboortedatum.setFont(new Font("Tahoma", Font.PLAIN, 12));
    lblGeboortedatum.setForeground(Color.WHITE);
    lblGeboortedatum.setBounds(278, 0, 96, 34);
    panel.add(lblGeboortedatum);

我希望“ Geboortedatum ...”的输出为:

Geboortedatum

yy-mm-dd

2 个答案:

答案 0 :(得分:1)

您可以执行以下操作:

import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;

public class TestJFrame extends JFrame {
    public static void main(String[] args) {
        JFrame f = new JFrame("label");
        JLabel l = new JLabel();
        String hello="Hello";
        String world="World!";
        String label="<html><body>"+hello+"<br>"+world+"</body></html>";
        l.setText(label);
        JPanel p = new JPanel();
        p.add(l);
        f.add(p);
        f.setSize(300, 300);
        f.show();
    }
}

enter image description here

答案 1 :(得分:1)

这个问题已经回答了,我想提供更多背景信息。

官方文档指出,您可以在大多数Swing组件中使用纯HTML。您可以找到完整的参考文献here。最重要的部分是:

  

要指定组件的文本具有HTML格式,只需将    标签在文本开头,然后在其中使用任何有效的HTML   其余的。

因此,一个有效的例子是

new JButton("<html>Line one<br>Line two</html>");

因此,可以使用<br>使用纯HTML换行。 (插入单个换行符)。您还可以使用其他各种HTML标记来设置组件样式,例如

  • <b>粗体文本样式,例如 this
  • <i>斜体文本样式,例如 this

here可以找到JLabel的完整概述,它比实际的Javadoc更好,因为后者没有提到可以使用HTML。