gpt4 book ai didi

java - 更改 JTextArea 中的文本

转载 作者:行者123 更新时间:2023-12-02 03:28:01 24 4
gpt4 key购买 nike

每当运行以下 PRINT() 方法时,我都会尝试更改 JTextArea 中的文本。整个程序很长,所以我只能发布一点,但基本上包含的 [50][50] 字符数组被转换成 50 行 50 个字符的字符串。当按下按钮时,保存此 JTextArea 的 JFrame 就会启动,并立即将 char 数组打印到 JTextArea 中(当我这样做时,char 数组永远不会更新)。该程序旨在每隔几秒更新一次此文本。

不过,JFrame 并不是每秒更新一次,而是基本上显示为一个空白框,直到最后一次运行 PRINT() 为止。目前,它意味着通过 10 次调用 PRINT() 在单独的行中打印 1...10,每次调用都在使用添加的数字更新了 output.outputLines 后。相反,它只显示一个空白帧,直到加载最后一个数字,然后打印整个内容。

PRINT() 方法:

public boolean PRINT(){   

String result = ""; //Used to hold the characters to be printed to the screen
for(int x = 0; x<50; x++){
for(int y = 0; y<50; y++) {
result = result + String.valueOf(output.outputLines[x][y]);
}//End of inner FOR statement

result = result + "\n";
output.jTextArea1.setText(result);
}//End of outer FOR statement

return true;
}

用于在 PRINT() 调用之间暂停的代码:

try {
java.lang.Thread.sleep(1000);
catch (Exception ex) {
System.out.println("Exception in Thread.sleep()");

谁能帮我找出问题所在吗?

最佳答案

您正在调用 Thread.sleep(...)在 Swing 事件线程上,本质上是让它和 GUI 进入休眠状态。解决方案(一如既往)是不要这样做。如果您想暂停,请使用 Swing Timer 。如果需要运行长时间运行的代码,请使用后台线程,例如 SwingWorker .

关于java - 更改 JTextArea 中的文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38516367/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com