【发布时间】:2013-05-17 09:37:05
【问题描述】:
我对@987654324@ 和其中包含的纯文本有疑问。对于纯文本换行,我使用LabelView,我对它给我的结果不太满意。
我的目标是让纯文本换行,例如JTextArea。我试过WrappedPlainView,但它只适用于JTextComponent
所以我的问题是也许你们知道/或有一些提前JLabel 意见?
注意:我不想将 html 添加到我的纯文本中。
标签视图:http://docs.oracle.com/javase/6/docs/api/javax/swing/text/LabelView.html
WrappedPlainView:http://docs.oracle.com/javase/6/docs/api/javax/swing/text/WrappedPlainView.html
试试这个例子,看看调整框架大小时单词是如何换行的:
import javax.swing.*;
import java.awt.*;
public class Example extends JFrame {
private static final String LONG_TEXT = "Lorem ipsum dolor sit amet, consectetur adipiscing elit. " +
"Ut in enim velit. Nunc posuere purus ac odio dictum auctor. " +
"Vivamus nec sem mi. Curabitur sed iaculis nibh. Proin vel massa augue. " +
"Aenean laoreet, tellus ut vulputate mollis, justo eros ornare tortor, " +
"vitae venenatis turpis augue id purus. In quis pretium justo. " +
"Quisque interdum sem at augue ultrices molestie. " +
"Nulla consectetur magna nec est malesuada sed ultricies diam gravida. " +
"Curabitur luctus, nulla nec pulvinar fringilla, enim turpis luctus tellus, " +
"non auctor diam ligula quis lectus.";
public Example()
{
JTextArea textArea = new JTextArea(LONG_TEXT);
textArea.setWrapStyleWord(true);
textArea.setLineWrap(true);
textArea.setWrapStyleWord(true);
textArea.setOpaque(false);
textArea.setEditable(false);
add(new JScrollPane(textArea), BorderLayout.CENTER);
setMinimumSize(new Dimension(100, 100));
setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
setVisible(true);
}
public static void main(String []args)
{
new Example();
}
}
看看这个例子,你会发现 JLabel 换行的问题:
import javax.swing.*;
import java.awt.*;
public class Example extends JFrame {
private static final String LONG_TEXT = "Lorem ipsum dolor sit amet, consectetur adipiscing elit. " +
"Ut in enim velit. Nunc posuere purus ac odio dictum auctor. " +
"Vivamus nec sem mi. Curabitur sed iaculis nibh. Proin vel massa augue. " +
"Aenean laoreet, tellus ut vulputate mollis, justo eros ornare tortor, " +
"vitae venenatis turpis augue id purus. In quis pretium justo. " +
"Quisque interdum sem at augue ultrices molestie. " +
"Nulla consectetur magna nec est malesuada sed ultricies diam gravida. " +
"Curabitur luctus, nulla nec pulvinar fringilla, enim turpis luctus tellus, " +
"non auctor diam ligula quis lectus.";
public Example()
{
JLabel label = new JLabel(LONG_TEXT);
add(label, BorderLayout.CENTER);
setMinimumSize(new Dimension(100, 100));
setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
setVisible(true);
}
public static void main(String []args)
{
new Example();
}
}
所以我们的目标是让 JLabel 单词在 JTextArea 中换行。
注意:在实际项目中,我正在使用 javax.swing.text.View`s,并且我正在使用 LabelView 作为纯文本。
【问题讨论】:
-
如需尽快获得更好的帮助,请发帖 SSCCE。 ;)
-
@Mode 在您对问题进行编辑之后,给您建议并不容易。请考虑 Andrew 的评论并准备一份 SSCCE。还要展示和描述您不喜欢
LabelView的哪些方面以及您想要实现的目标。 -
@Mode 在我的第一次真实尝试中查看我的直升机视图
标签: java swing jlabel word-wrap