java - 在 JTextArea 中对文本进行键入效果

标签 java swing delay jtextarea

我正在制作一个具有 JTextArea 的程序。我正在使用 append() 方法向其添加文本。我希望文本就像有人在 JTextArea 中输入一样,即它应该输入一个字符,然后等待 400 毫秒,输入下一个字符,然后再次等待,依此类推。 这是我的代码:

public void type(String s)
{
    char[] ch = s.toCharArray();
    for(int i = 0; i < ch.length; i++)
    {
        // ta is the JTextArea
        ta.append(ch[i]+"");
        try{new Robot().delay(400);}catch(Exception e){}
    }
}

但这不起作用。它等待几秒钟,不显示任何内容,然后立即显示整个文本。请提出建议。

最佳答案

改用javax.swing.Timer。保留对 JTextArea 实例和字符索引的引用。在每个 actionPerformed() 调用中,将当前字符附加到 JTextArea。当 char 索引等于 char 数组长度时停止计时器

关于java - 在 JTextArea 中对文本进行键入效果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26652483/

相关文章:

java - 按 Enter 键编辑 JTable 中的特定单元格并显示光标

java - Jenkins - 从 Groovy 访问 JAVA "getProperties"

java - 在选择可用方法时如何在intelliJ中弹出方法定义窗口?

java - 如何更改 JSplitPane 的颜色

java - 将 JMenu 添加到在每像素半透明模式下运行的未修饰 JFrame 不会绘制

java - 如何让一个ImageView覆盖另一个View并在一定时间后隐藏?

Python - 慢慢输入每个字符

Android - 在调用方法之前不断增加延迟,直到用户停止交互

java - RESTful API 客户端如何保存 oAuth token 以供将来的请求使用?

java - 如何使用Java在一个线程中在elasticsearch中插入和搜索?