将该行的最后一个单词设置为jtext区域中的下一行



这可能是一个非常简单的问题,但我没有从任何地方得到任何答案。

我有一个字符串变量,它包含一个很长的段落字符串,并打算由.setText(str)放置在JTextArea上;

我的问题是如何将这行的最后一个单词(不适合该行的右边缘)转移到下一行。

下面的插图可能会帮助我解决问题:

问题:

The quick brown fox ju
mps over the lazy dog.

所需解决方案:

The quick brown fox
jumps over the lazy
dog.

启用单词换行,以强制文本区域不换行到单词中间。

JTextArea c = new JTextArea();
c.setLineWrap(true);
c.setWrapStyleWord(true);

来源http://www.exampledepot.com/egs/javax.swing.text/ta_Wrap.html

JTextArea具有.setLineWrap属性。听起来这正是你所需要的。

JTextArea API 区域

源代码来自Java2s.com:

import java.awt.BorderLayout;
import java.awt.Dimension;
import javax.swing.JFrame;
import javax.swing.JSplitPane;
import javax.swing.JTextArea;
public class MainClass extends JFrame {
  static String sometext = "Text Text Text Text Text Text Text Text Text Text Text ";
  public MainClass() {
    super("Simple SplitPane Frame");
    setSize(450, 200);
    setDefaultCloseOperation(EXIT_ON_CLOSE);
    JTextArea jt1 = new JTextArea(sometext);
    JTextArea jt2 = new JTextArea(sometext);
    jt1.setLineWrap(true);
    jt2.setLineWrap(true);
    jt1.setMinimumSize(new Dimension(150, 150));
    jt2.setMinimumSize(new Dimension(150, 150));
    jt1.setPreferredSize(new Dimension(250, 200));
    JSplitPane sp = new JSplitPane(JSplitPane.HORIZONTAL_SPLIT, jt1, jt2);
    getContentPane().add(sp, BorderLayout.CENTER);
  }
  public static void main(String args[]) {
    MainClass ssb = new MainClass();
    ssb.setVisible(true);
  }
}

在将字符串数据设置为JTextArea之前,您可以使用以下代码对其进行编辑:

    StringBuffer sb=new StringBuffer(str);
sb.setCharAt(str.lastIndexOf(" "), 'n');

然后在设置jtextArea.setText(sb.toString())之后;

感谢

最新更新