实际上,我已经从一个框架(假设)A ..在摆动工人类中在do-in-background方法中调用swing工作者我有某些db查询,我也打电话给框架B .. done()方法,但我想处置框架..我怎么做..?我不能在框架A类中写入dispose(),因为这会导致在新框架(框架B)可见之前丢弃框架...请帮助!处理从swingWorker框架
class frameA extends JFrame{
public frameA(){
//done some operations..
SwingWorker worker=new Worker();
worker.execute();
}
public static void main(string[] args){
new frameA();
}
}
和工人类
class Worker extends SwingWorker<Void, String> {
public Worker() {
super();
}
//Executed on the Event Dispatch Thread after the doInBackground method is finished
@Override
protected void done() {
//want to dispose the frameA here..
}
@Override
protected Void doInBackground() throws Exception {
// some db queries
new frameB().setVisible(true);
// call to frameb
}
这种情况看起来像一个使用单个帧和[CardLayout](http://docs.oracle.com/javase/tutorial/uiswing/布局/ card.html)会更合适。还要注意,通过在'main()'和'doInBackground()'中修改EDT之外的摆动组件,你正在打破摆动线程规则。 – kiheru
是不是可以处置frameA ..因为它需要在我的应用程序..我不能使用标签式窗口 – user2984132