如何在 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);
});
}
}
我正在开发一个文本编辑器,我想显示输入的文本,其中可以包含 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);
});
}
}