小编典典

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

java

我有一个问题,我的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

阅读 344

收藏
2020-11-30

共1个答案

小编典典

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

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

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线程示例。

2020-11-30