добавить символ в JTextArea - PullRequest
3 голосов
/ 09 ноября 2011

Итак, я работаю над созданием класса, который будет «печатать» буквы в JTextArea, делая паузу между каждой буквой, чтобы было похоже, что кто-то печатает.Единственный способ, которым я могу придумать, это использовать output.append (char) в цикле с паузой.Единственная проблема ... вы можете только добавлять строки в JTextAreas.

Так есть ли способ преобразовать символ в строку, чтобы я мог добавить его буква за буквой ???

Вот мой код:

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 ]

3 голосов
/ 10 ноября 2011

Используйте конструктор String (char [] value), чтобы

String s = "";
s += Character.toString('s');
2 голосов
/ 09 ноября 2011

Не используйте символы.

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