我正在处理文本编辑器,我想显示键入的文本,包含行/符号的内容。但是JLabel没有显示多行文字(不使用HTML - 但我不想使用)。我尝试在一个不可编辑的JTextArea(在JScrollPane中)显示它,但它变得无法使用鼠标滚轮滚动。
例如:
JTextArea textArea = new JTextArea();
JLabel label = new JLabel(textArea.getText());
JFrame.add(new JScrollPane(label));
如何在可滚动容器中显示多行文字?
答案 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);
});
}
}