Java 在JTextArea中更改文本
每当运行以下PRINT()方法时,我都试图更改JTextArea中的文本。整个程序很长,所以我只能发布一点,但基本上一个[50][50]字符数组包含的内容被转换成50行50个字符串。当按下一个按钮时,持有这个JTextArea的JFrame就会启动,并立即将char数组打印到JTextArea中(当我这样做时,char数组永远不会更新)。程序打算每隔几秒钟更新此文本 但是,在上次运行PRINT()之前,JFrame基本上是一个空白框,而不是每秒更新一次。目前,它是指在output.outputLines用添加的数字更新后,通过10次对print()的调用,在单独的行中打印1…10。相反,它只显示一个空白帧,直到加载最后一个数字,然后打印整个内容 PRINT()方法:Java 在JTextArea中更改文本,java,arrays,swing,Java,Arrays,Swing,每当运行以下PRINT()方法时,我都试图更改JTextArea中的文本。整个程序很长,所以我只能发布一点,但基本上一个[50][50]字符数组包含的内容被转换成50行50个字符串。当按下一个按钮时,持有这个JTextArea的JFrame就会启动,并立即将char数组打印到JTextArea中(当我这样做时,char数组永远不会更新)。程序打算每隔几秒钟更新此文本 但是,在上次运行PRINT()之前,JFrame基本上是一个空白框,而不是每秒更新一次。目前,它是指在output.outputL
有人能帮我找出哪里出了问题吗?您正在Swing事件线程上调用
Thread.sleep(…)
,本质上就是让它和您的GUI进入睡眠状态。解决办法(一如既往)是不要这样做。如果要暂停,请使用。如果需要运行长时间运行的代码,请使用后台线程,例如在Swing事件线程上调用thread.sleep(…)
,实质上是将其和GUI置于睡眠状态。解决办法(一如既往)是不要这样做。如果要暂停,请使用。如果需要运行长时间运行的代码,请使用后台线程,例如。我可以看到这是哪一个问题的精确副本吗?我可以看到这是哪一个问题的精确副本吗?谢谢,我将尝试此问题并查看另一个问题。谢谢,我将尝试此问题并查看另一个问题。
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;
}
try {
java.lang.Thread.sleep(1000);
catch (Exception ex) {
System.out.println("Exception in Thread.sleep()");