【发布时间】:2011-12-25 14:54:41
【问题描述】:
所以我正在制作一个类,它会将字母“输入”到 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...
*/
}
【问题讨论】:
-
如何将 Java 中的 anything 转换为字符串?以 t 开头,以 g 结尾... ;-) 请注意,到目前为止建议的技术与您的原始代码具有相同(可能)的缺陷...当幻像打字员工作时,您的 UI 被锁定。
-
是的 .toString() 方法....它不起作用。我收到一个错误,它说... char 不能被取消引用
-
对不起 - 你可能在一个字符上试过它,而不是一个字符。您需要先转换为字符。编译器对其进行了高度优化的简写版本是仅附加到一个空字符串,例如 - String bar = "" + 'x';.
-
@Ed 好吧,我见过人们使用字符,但不知道字符和字符之间有什么区别。我也知道我的 UI 被锁定了,这对我有利,因为我正在构建一个基于文本的小型冒险游戏。这是我正在做的项目。
标签: java swing char append jtextarea