将一个char附加到JTextArea

时间:2011-11-09 19:46:40

标签: java swing char append jtextarea

所以我正在努力创建一个将字母“键入”到JTextArea中的类,在每个字母之间暂停以使其看起来像某人正在键入。我能想出的唯一方法是在循环中使用output.append(char)并暂停。唯一的问题是...你只能将字符串附加到JTextAreas。

那么有没有办法将char转换为字符串,以便我可以逐个字母地附加它?

到目前为止,这是我的代码:

import objectdraw.*;
import java.awt.*;
import javax.swing.*;

public class TypeWriter extends ActiveObject
                        implements Drawable {

  private char [] letter;
  private JTextArea cp;

  public TypeWriter(String sentence, JTextArea console) {

    /* break string into characters and save the console
     * for later use
     */
    letter = new char[sentence.length()];
    cp = console;

    for(int i=0; i<sentence.length(); i++) {
      letter[i] = sentence.charAt(i);
    }

    start();

  }

  public void run() {

    // append each letter, pausing between them
    for( char s : letter ) {
      cp.append(new String(s));
      pause(50);
    }

  }

  /* More methods for the 
   * Drawable interface...
   */

}

2 个答案:

答案 0 :(得分:3)

使用String(char [] value)构造函数

String s = "";
s += Character.toString('s');

答案 1 :(得分:2)

不要使用字符。

String foo = "This is a String";
for (int i = 0; i < foo.length(); i++)
{
    String subString = foo.substring(i, i+1);
    cp.append(subString);
    pause(50);
}