如何在Java TextBox中包装长行文本?

时间:2009-11-06 23:12:54

标签: java string text

我想从文本文件中加载Java中的文本框。这听起来很简单,但最大的问题是如何返回结尾例如,当文本接近框的边缘时添加换行符。

                              |
                              |
                              |
Java java java Java java java |Java java java Java java java
                              |
                              |

让我们假设该行代表文本框的边缘。它溢出来了。

我该怎么做?

Java java java Java java java|
Java java java Java java java|
Java java java Java java java|

目前我正在使用txtWords.setTxt(list); 我不认为这是正确的。有没有人有办法解决吗?赞美它!

2 个答案:

答案 0 :(得分:7)

实际上,您需要使用setLineWrap属性,如下所示:

JTextArea t = new JTextArea();
t.setText(yourText);
t.setLineWrap(true);

答案 1 :(得分:0)

看一下这个例子(取自here

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