Tag: word wrap

JTextArea:如何用文字而不是字符来包装文本?

我想避免像这样的输出: 这是一些文字 帽子正在被包裹着 d by characters,sp 哈哈的话 如果 我正在使用带有setLineWrap(true)的JTextArea。 但是我怎么能把它包起来呢? (有没有办法让它只在有空间或东西时换行?)

在JTextpane中切换文本换行

我如何在JTextpane上切换文本换JTextpane ? public JFrame mainjFrame = new JFrame(“Text Editor”); public JTextPane mainJTextPane = new JTextPane(); public JScrollPane mainJScrollPane = new JScrollPane(mainJTextPane); mainjFrame.add(mainJScrollPane);

在JTextPane中包装长单词(Java 7)

在最多6个Java的所有版本中,放置在JScrollPane中的JTextPane的默认行为是:如果可能,在字边界处换行。 如果没有,那么无论如何都要包裹它们。 在JDK 7中,默认行为似乎是:如果可能,在字边界处换行。 如果没有,只需展开JTextPane的宽度(永远不要换长字)。 很容易重现这个,这是一个SSCCE: public class WrappingTest extends JFrame { public static void main ( String[] args ) { new WrappingTest(); } public WrappingTest () { setSize(200,200); getContentPane().setLayout(new BorderLayout()); JTextPane jtp = new JTextPane(); JScrollPane jsp = new JScrollPane(jtp); jsp.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED); getContentPane().add(jsp,BorderLayout.CENTER); setVisible(true); } } 只需在JDK 6和JDK 7中运行它,写一些小字,然后写一个长字,你就会看到差异。 我的问题很简单…… JDK 7中的新默认行为完全混淆了我的程序(他们应该更加小心Oracle更改这种默认值……它们似乎不重要但是当你使用JTextPane显示时通常包含非常长的字母串的数据,它们并不是那么不重要 – 实际上我要提交错误报告,但是我想在/如果它们不解决它的情况下有一个解决方法)。 有什么方法可以回到以前的行为? […]

使用Java 7在JTextPane中使用样式文本进行奇怪的文本包装

我有两个不同的编辑器使用JTextPane和Java 7中的奇怪错误,这些错误在以前的JVM版本中没有出现。 它出现在包含样式文本或组件的长行中。 这是一个演示此错误的示例。 在此示例中,每次插入字符时,都会对所有文本应用默认样式。 我用JDK 1.7.0_04测试了它。 import java.awt.BorderLayout; import javax.swing.*; import javax.swing.event.*; import javax.swing.text.*; public class BugWrapJava7 extends JFrame { JTextPane jtp; StyledDocument doc; public BugWrapJava7() { setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); setLayout(new BorderLayout()); jtp = new JTextPane(); add(jtp, BorderLayout.CENTER); jtp.setText(“\ntype some text in the above empty line and check the wrapping behavior”); doc = jtp.getStyledDocument(); doc.addDocumentListener(new DocumentListener() […]

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