效果如下。
如何实现这个功能? 很简单。 将点击事件的执行效果放入一个线程中,在该线程执行时显示过时的朋友就可以了
privatevoidjbutton1action performed (Java.awt.event.actionevent evt ) { tqflag=false; Vector v=mycomboBox.getComboVc (; 请选择if(v.size(==0) ) msg ) '状态!' ); 返回; }jframeframe=(jframe ) tabPanel.getRootPane ().getParent; threadcalculateyitemthread=new thread (newsjhthread () ); //数据导入线程calculateYItemThread.start (; witingdialogfactory.popupwaitingdialog (frame,calculateYItemThread,'正在提取数据.'; frame.validate (; if(TQflag ) msg )提取计划成功! ' ); this.changeTable (; this.sbsb (; } else { Msg ('提取计划失败! ' ); } }布尔TQ flag=false; classjhthreadextendsthread { @ overridepublicvoidrun (} { vectorv=my combobox.getcombovc ); Iterator y=v.iterator (; liststringstatelist=newarrayliststring (; while(y.Hasnext () ) state list.add (y.next ).toString ); } TQ flag=service _ import.importydjxjh (pdate,stateList ); }
注:每次单击按钮时,必须将TQ标志留空,以避免上次单击操作对当前事件的影响。 使用tqflag向外指出应该由线程判断的逻辑是否成功。 为了不出现,冲出执行失败的(成功的)弹匣时,“正在检查中。 ”。 的效果图依然存在。