当前位置: 首页 > 面试题库 >

Swing GUI在数据处理期间不会更新

万俟心思
2023-03-14
问题内容

我有一个问题,我的Swing
GUI组件在程序忙时没有为我更新。我正在创建一个图像编辑器,并且在进行大量处理时,我尝试在其工作时更改“状态”标签,以使用户了解正在发生的事情。标签直到处理完成后才会更新。

如何立即更新标签,而不必等待?顺便说一下,我的标签都放在了JPanel上。

在for循环和以下方法完成之前,不会设置我的标签。

 labelStatus.setText("Converting RGB data to base 36...");

                            for (int i = 0; i < imageColors.length; i++) {
                                for (int j = 0; j < imageColors[0].length; j++) {
                                    //writer.append(Integer.toString(Math.abs(imageColors[i][j]), 36));
                                    b36Colors[i][j] = (Integer.toString(Math.abs(imageColors[i][j]), 36));
                                }
                            }
                            String[][] compressedColors = buildDictionary(b36Colors);//CORRECTLY COUNTS COLORS

问题答案:

你可以做这样的事情,不是最好的,但是它可以给你一些想法

创建一个线程调度程序类,并从主类中调用

public class ThreadDispatcher implements Runnable {

public ThreadDispatcher() {

}

public void run() {

        //call the method related heavy process here

    }

}

在你的主要班级可能就是这样

 Thread thread = new Thread(new ThreadDispatcher());
 thread.start();
 sleep(100);

赶上InterruptedException ex。

并检查Java线程示例。



 类似资料:
  • 问题内容: jQuery ajax代码是: 当我单击按钮时,大约5秒钟后将显示数据。在此期间,我想添加一个加载图像。我怎样才能做到这一点? 问题答案: 这是我用于加载图像的CSS + HTML。我使用jQuery简单地添加了一个将不透明度从1更改为0的类,并结合了CSS过渡属性以实现淡入淡出效果。#loader的背景图片为220px X 80px,只是一个纯色的圆角矩形,其右侧为文本“ loadi

  • 我使用的是Spring Batch 3.0.7、EclipseLink 2.6.4和Oracle 11/12。 我在数据库中有一对多的关系。批处理读取器读取单侧(父级),处理器读取多侧(子级)。我很确定这两个都是由不同的应用程序以事务方式插入的。 批处理读取器源自,只需设置和。 处理器是一个使用Spring Data JpaRepository的,并将数据添加到父库中。Repository具有。

  • 我一直试图使这个应用程序,将产生一个折线图后,我点击"添加新数据项"按钮。现在,在我点击按钮后,什么都没发生(gui冻结),在我最大化框架后,图形出现在框架内,这意味着我的程序工作了,但我不知道为什么我的gui冻结了。我见过类似的问题,人们回答说必须引入一个新的线程来处理不同的拍摄,我也尝试过,但它仍然不起作用,只是让情况变得更糟。有人知道我犯了什么错误吗?这是我的代码: 谢谢你!

  • 主要内容:日期,时间,日期格式化:年-月-日DOS脚本中的日期和时间具有以下两个用于检索系统日期和时间的基本命令。 日期 该命令获取系统日期。 语法 示例 当前日期将显示在命令提示符下。 例如, 时间 该命令设置或显示时间。 语法 示例 当前时间将显示在命令提示符下。 例如, 以下是一些可用于以不同格式获取日期和时间的实现。 日期格式化:年-月-日 示例 以上命令产生以下输出 -

  • 我有一个Spring批处理作业。它的阅读器通过一些复杂的sql从数据库中读取一些记录。现在,对于我从数据库收到的每一条记录,我必须再打一个表来获取一些属性。注意:-我不能在阅读器步骤中加入这个表sql。所以这些获取的属性以及现有记录中的数据需要写入文件。这可以用Spring批处理完成吗?

  • 我最近一直在思考同一个问题,想知道我的令牌解决方案是否有什么重大缺陷: 将过期时间设置为较低值(约15分钟) 每个生成的JWT也被添加到每个用户的“issuedTokens”集合/表中 在 JWT 验证期间,如果过期已过,将从服务器返回“过期”响应(例如,正文中带有“过期”的 401)。当客户端收到此状态时,它应该启动一个刷新过程,该过程将过期的令牌换成新的令牌。 服务器上的刷新endpoint应