JAVA中为什么我在图形界面加线程后运行图形界面就成空白了?

2024-12-25 14:31:11
推荐回答(2个)
回答1:

所有的UI绘制都必须在UI线程里完成,不能在工作线程中调用UI部分。在Swing中,你可以通过Timer触发UI线程绘制,Timer可以在工作线程中调用,举例:

int delay = 400; //milliseconds
            ActionListener taskPerformer = new ActionListener() {
                public void actionPerformed(ActionEvent evt) {
                    //...Perform a task...
                    blueButton.setBackground(Color.BLUE);
                }
            };
            Timer timer = new Timer(delay, taskPerformer);
            timer.setRepeats(false);
            timer.start();

你可以在UI线程中创建timer,保存下来,然后在工作线程的run()中去执行timer。同样,Android中使用Handler是完全一样的。

回答2:

可以贴出源代码,分析一下