关于“数据加载中。。。”类似功能的实现

来源:互联网 发布:ubuntu双系统重装win7 编辑:程序博客网 时间:2024/06/05 06:28

效果如图所示:


如何实现该功能?很简单,将点击事件的执行效果放在一个线程中,在该线程执行的时候显示圈圈即可

private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {                                                 tqflag = false;        Vector v = mycomboBox.getComboVc();        if (v.size() == 0) {            Msg("请选择状态!");            return;        }        JFrame frame = (JFrame) tabPanel.getRootPane().getParent();        Thread calculateYItemThread = new Thread(new sjjhThread());  //启动数据导入线程        calculateYItemThread.start();        WaitingDialogFactory.popUpWaitingDialog(frame, calculateYItemThread, "正在提取数据...");        frame.validate();        if (tqflag) {            Msg("提取计划成功!");            this.changeTable();            this.sbsb();        } else {            Msg("提取计划失败!");        }    } 
boolean tqflag = false;    class sjjhThread extends Thread {        @Override        public void run() {            Vector v = mycomboBox.getComboVc();            Iterator y = v.iterator();            List<String> stateList = new ArrayList<String>();            while (y.hasNext()) {                stateList.add(y.next().toString());            }            tqflag = service_import.importYdJxjh(pdate, stateList);        }    }

注意:每次点击按钮的时候,需要将tqflag设为空,避免上一次的点击操作对当前事件的影响。用tqflag将线程中需要判断的逻辑成功与否提到外面来。避免出现,当弹出执行失败(成功)的弹窗时,“正在校核。。。”的效果图依然存在。


阅读全文
0 0
原创粉丝点击