背景介绍:一个applet程序,上面一共有两个按钮,buttonA,buttonB。
点击buttonA的时候,读取数据库中的100w条数据,生成txt文件放在C盘下。
操作很耗时间,比如要30分钟才能做完,那么在这30中内,buttonB不能被点击进行任何操作。问题:如何设计程序让程序在运行第一个操作的时候,不影响第二个操作?

解决方案 »

  1.   

    像下面这样, 把从数据库中读数据的操作放到一个线程中去处理, 这样用户界面就不会被冻结了.
    buttonA.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent e) {
                    Thread t = new Thread(new Runnable() {
                            public void run() {
                                    readDataFromDatabase();
                            }
                    );
            }
    });