eclipse 两个shell窗口 如何实现相互切换(通过点击shell上添加的按钮) 20

比如点击窗口A的按钮可以打开窗口B同时关闭窗口A点击窗口B的按钮也一样ShelloldShell=null;sShell=newA1().getShell();oldSh... 比如点击窗口A的按钮可以打开窗口B 同时关闭窗口A
点击窗口B的按钮也一样
Shell oldShell =null;
sShell=new A1().getShell();
oldShell.dispose();
sShell.open();
我用的这种方法 可总是报错 或者就不能在打开另一个窗口的同时 关闭现有的窗口
部分代码:
public static void main(String[] args) {
Display display = Display.getDefault();
A2 thisClass = new A2();
thisClass.createSShell();
thisClass.sShell.open();
while (!thisClass.sShell.isDisposed()) {
if (!display.readAndDispatch())
display.sleep();
}
display.dispose();
}
private void createSShell() {
sShell = new Shell();
sShell.setText("Shell");
sShell.setSize(new Point(300, 200));
sShell.setLayout(new GridLayout());
button = new Button(sShell, SWT.NONE);
button.setText("打开A1");
button.addSelectionListener(new org.eclipse.swt.events.SelectionAdapter() {
public void widgetSelected(org.eclipse.swt.events.SelectionEvent e) {
sShell=new A1().getShell();
oldShell.dispose();
sShell.open();
}
});
}

public Shell getShell() {
return null;
}
public A2(){
createSShell();
}
}
报错解决了 但是只能实现两个窗口的一次切换 即可以通过A1打开A2 但不能再通过A2打开A1反之也一样
展开
 我来答
Irreproducible
2012-05-02 · TA获得超过451个赞
知道小有建树答主
回答量:305
采纳率:100%
帮助的人:457万
展开全部
我告诉你的关于dispose的问题,你是不予理会,还是无用?
====================================================
我的swt经验不多,手边也没有这个开发环境。
只提一个想法,dispose的意思是丢弃这个窗口,并且释放它占用的系统资源。所以你一旦丢弃一个窗口,是不能重新恢复显示的。你可以找找看有没有隐藏一个窗口(但不dispose)的方法,比如close,hide之类名字的方法。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友fe46085
2012-05-03
知道答主
回答量:27
采纳率:0%
帮助的人:19.6万
展开全部
你不应该关闭当前Shell的父窗口吧,你可以把当前Shell的父窗口隐藏掉,然后让当前窗口显示,只是建议哈。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式