将该行的最后一个字设置为jtextarea中的下一行

时间:2011-06-20 11:17:54

标签: java jtextarea

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

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

我的问题是如何使该行的最后一个字(不适合该行的右边缘)在下一行传输。

下面的插图可能有助于解决我的问题:

问题:

The quick brown fox ju
mps over the lazy dog.

需要解决方案:

The quick brown fox
jumps over the lazy
dog.

3 个答案:

答案 0 :(得分:4)

启用自动换行以强制“文本”区域不会包含在单词的中间。

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

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

答案 1 :(得分:2)

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);
  }
}

答案 2 :(得分:-2)

您可以在使用以下代码将字符串数据设置为JTextArea之前编辑它们:

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

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

由于