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反之也一样 展开
点击窗口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反之也一样 展开
2个回答
展开全部
我告诉你的关于dispose的问题,你是不予理会,还是无用?
====================================================
我的swt经验不多,手边也没有这个开发环境。
只提一个想法,dispose的意思是丢弃这个窗口,并且释放它占用的系统资源。所以你一旦丢弃一个窗口,是不能重新恢复显示的。你可以找找看有没有隐藏一个窗口(但不dispose)的方法,比如close,hide之类名字的方法。
====================================================
我的swt经验不多,手边也没有这个开发环境。
只提一个想法,dispose的意思是丢弃这个窗口,并且释放它占用的系统资源。所以你一旦丢弃一个窗口,是不能重新恢复显示的。你可以找找看有没有隐藏一个窗口(但不dispose)的方法,比如close,hide之类名字的方法。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询