java编写的窗口,如何动态的刷新,比如,单击一个按钮后,按钮的后台代码是熬时间的,但是想这个代码所做的事情会马上在窗口中显示,而不是等到按钮事件全部完成。

解决方案 »

  1.   

    使用异步消息,连接后台的取得消息的代码另起一个线程去做,不是放在事件派发线程中来做。比如:只是一个简单的例子
    button.addActionListener(new ActionListener(){//这是在事件派发线程中处理的,如果吧接受消息放在这个线程中执行,会导致后面的事件堵塞,形成灰屏
    public void actionPerformed(ActionEvent e){
    new Thread(){
    public void run(){
    ....//后台的处理逻辑
    }
    }.start();
    }
    })
      

  2.   

    不用这么麻烦,其实,只须要用Update()就可以了,比如,如果你是继承JFrame,那么如果你想更新整个JFrame的话,在你的成员方法中用this.Update(this.getGraphics());如果你想更新容器的某一部分,也是同样的道理,只是那个调用update()和getGraphice()的对象是相应的对象就可以了
      

  3.   

    Updata是没有作用的,你可以试试,事件派发线程堵塞了