добавить символ в JTextArea

#java #swing #char #append #jtextarea

#java #качать #символ #добавить #jtextarea

Вопрос:

Итак, я работаю над созданием класса, который будет «вводить» буквы в JTextArea, делая паузу между каждой буквой, чтобы все выглядело так, как будто кто-то печатает. Единственный способ, который я могу придумать, — это использовать output.append(символ) в цикле с паузой. Единственная проблема… вы можете добавлять только строки в 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...
   */

}
  

Комментарии:

1. Как преобразовать что -либо в Java в строку? Начинается с t, заканчивается на g… 😉 Обратите внимание, что предложенные до сих пор методы имеют тот же (вероятный) дефект, что и ваш исходный код … ваш пользовательский интерфейс заблокирован, пока работает машинистка-фантом.

2. Да . Метод toString() …. это не сработало. Я получил сообщение об ошибке, в нем говорилось … символ не может быть разыменован

3. Извините — вы, вероятно, пробовали это для символа, а не для символа. Сначала вам нужно преобразовать в символ. Сокращенная версия для этого, которая очень сильно оптимизирована компилятором, заключается в простом добавлении к пустой строке, например, — String bar = «» ‘x’;.

4. @Ed Ах, хорошо, я видел, как люди используют символы, но не знал, в чем разница между Character и char. Кроме того, я знаю, что мой пользовательский интерфейс заблокирован, это работает в мою пользу, потому что я создаю небольшую текстовую приключенческую игру. Это проект, над которым я работаю.

Ответ №1:

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

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

Ответ №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);
}
  

Комментарии:

1. Мне нравится ваше решение больше, чем мое

2. Аааа, это имеет гораздо больше смысла. Спасибо, сэр.