如何在 java 中显示带有换行符的文本

How to display text with line-breaks in java

我正在开发一个文本编辑器,我想显示输入的文本,其中可以包含 line/breaks。但是 JLabel 不显示多行文本(不使用 HTML - 但我不想使用)。我尝试在不可编辑的 JTextArea(在 JScrollPane 中)中显示它,但它变得无法用鼠标滚轮滚动。

例如:

JTextArea textArea = new JTextArea();
JLabel label = new JLabel(textArea.getText());
JFrame.add(new JScrollPane(label));

如何在可滚动容器中显示多行文本?

很难说为什么 JTextArea 会停止滚动,也许这是一个单独的问题。这应该可以正常工作。

package test;

import java.awt.BorderLayout;

import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;
import javax.swing.SwingUtilities;

public class Test {

    public static void main(String[] args) {
        SwingUtilities.invokeLater(() -> {
            JFrame f = new JFrame();
            JTextArea ta = new JTextArea("a\nb\nc\nd\ne\nf\ng\nh");
            ta.setEditable(false);
            JPanel p = new JPanel();
            p.setLayout(new BorderLayout());
            p.add(new JScrollPane(ta));
            f.add(p);
            f.setSize(100, 100);
            f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
            f.setVisible(true);
        });
    }
}