如何在JTextPane中实现自动换行,如何使其包装没有空格的字符串?

如何在JTextPane中实现自动换行?

我试图准确理解它是如何工作的,以便我可以修改行为。 现在,如果我在JScrollPane中有一个标准的JTextPane,它会在空格中破坏文本,但不会在长文字内部 – 如果有一个文本字符串没有比窗口宽的空格,它将不会换行/中断将出现一个水平滚动条。 随着文本宽度的增加,ParagraphView的宽度(通过getWidth())会增加以保存文本。

Lapitsky的这篇文章说LabelView.getBreakWeight()返回带有空格的标签的View.ExcellentBreakWeight和没有空格的标签的View.GoodBreakWeight(GlyphView.java中的代码似乎证实了这一点),为什么它不会破坏? 是以某种方式返回BadBreakWeight而不是GoodBreakWeight? 还是有一些布局问题? 还是有错误?

这是一些代码(为了您的观看乐趣):

//somewhere inside JPanel or JFrame constructor JTextPane textPane = new JTextPane(); JScrollPane scrollPane = new JScrollPane(textPane); add(scrollPane); 

请注意,如果我取出滚动窗格并只使用文本窗格(它只是在窗口外面时被剪切),它仍然不会换行。


Swing的javadoc似乎没有详细介绍一些对象(如JTextPane,View和相关对象)如何协同工作。 是否还有关于此类课程设计的进一步文档,或许详细说明了每个课程的目的以及它们如何一起工作? 它不公开吗? (或者我是唯一一个在这样的事情上遇到麻烦的人?或者说文档不足以限制一些典型的开发人员不会处理的事情?)

关于自定义换行的链接(强制换行和无换行)。 http://java-sl.com/wrap.html

关于信件包装的链接http://java-sl.com/tip_html_letter_wrap.html