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

时间:2017-11-06 14:40:07

标签: java swing text multiline

我正在处理文本编辑器,我想显示键入的文本,包含行/符号的内容。但是JLabel没有显示多行文字(不使用HTML - 但我不想使用)。我尝试在一个不可编辑的JTextArea(在JScrollPane中)显示它,但它变得无法使用鼠标滚轮滚动。

例如:

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

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

1 个答案:

答案 0 :(得分:2)

很难说为什么你的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);
        });
    }
}