Wie lässt sich ein mehrzeiliges JLabel mit HTML-Text realisieren?

JLabel können problemlos mit HTML-Text versehen werden, wenn dieser standardgerecht formatiert ist.

Beispiel eines JLabel mit HTML-Formatierung

Das Beispiel zeigt einen einfachen JFrame, der lediglich ein JLabel enthält. Das Label ist mit HTML-Text versehen, sodass auch mehrzeilige Darstellungen möglich sind. Der Text muss lediglich Code-konform sein und kann auch ansatzweise durch Stylesheets formatiert werden. Doctype-Angaben oder ein <head>- und <body>-Bereich sind nicht notwendig.

import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.SwingUtilities;

public class LabelMitHTMLText {

    public LabelMitHTMLText() {
        init();
    }
    
    private void init() {
        String txt = "<html><h1 align=\"center\">&Uuml;berschrift</h1>"
                + "<p bgcolor=\"#ddddff\">"
                + "Falsches &Uuml;ben von Xylophonmusik qu&auml;lt jeden "
                + "<font color=\"#ff3333\" size=\"+1\">gr&ouml;&szlig;eren</font> "
                + "Zwerg.</p></html>";
        JLabel label = new JLabel(txt);
        JFrame frame = new JFrame("HTML-Label");
        frame.add(label);
        frame.pack();
        frame.setLocationRelativeTo(null);
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.setVisible(true);
    }

    public static void main(String[] args) {
        SwingUtilities.invokeLater(() -> new LabelMitHTMLText());
    }