#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. Аааа, это имеет гораздо больше смысла. Спасибо, сэр.