在JTextPane中禁用自动换行

Use*_*er1 10 java swing

我找不到一个简单的方法来关闭JTextPane中的自动换行.我不能使用JTextArea,因为我需要不同的颜色用于不同的文本.我有这些丑陋的线条,开启自动换行更加丑陋.

JTextArea有一个setLineWrap()方法,但我找不到JTextPane.为什么?

Use*_*er1 8

好的,我找到了一个简单的解决方案.将JTextPane放入具有Border布局的JPanel的中心.然后,将JPanel放入JScrollPane.

因此,层次结构如下所示:

  • JScrollPane的
  • JPanel(带边框布局)
  • 的JTextPane

JScrollPane包含它下面的所有内容,JTextPane位于其上方的所有内容中.

我不确定为什么会这样,但确实如此.

  • 我认为这个工作的原因是因为当文本窗格位于带有BorderLayout(作为中心)的面板中时,它位于ScrollPane中,其首选大小增长到内容所需的任何内容(即borderlayout为其提供了所需的空间,因为它在滚动窗格中可以随意增长.当它直接放在面板或框架中时,它的大小受到面板/框架大小的限制.一旦文本长度>可用长度,JTextPane开始包装在可用空间(已修复)中使用它们的单词. (3认同)