SWT如何关闭窗口

publicclasswindow1{publicstaticvoidmain(String[]args){finalDisplaydisplay=Display.get... public class window1 {

public static void main(String[] args) {
final Display display = Display.getDefault();
final Shell shell = new Shell();
shell.setSize(500, 375);
shell.setText("SWT Application");
//

shell.open();

final Button button = new Button(shell, SWT.NONE);
button.addSelectionListener(new SelectionAdapter() {
public void widgetSelected(final SelectionEvent arg0) {
//里该怎么写才能关闭这个窗口,用System。exit()不行啊,
而且需要关闭窗口后打开窗口window2.
}
});
button.setText("button");
button.setBounds(65, 121, 130, 56);
shell.layout();
while (!shell.isDisposed()) {
if (!display.readAndDispatch())
display.sleep();
}
}

}
展开
 我来答
daay1986
推荐于2021-01-12 · TA获得超过6018个赞
知道大有可为答主
回答量:2208
采纳率:0%
帮助的人:1473万
展开全部
System。exit()这个肯定不行,他会把当前的运行的线程直接杀掉,肯定不能再打开新窗口了。 你这个shell有关闭的方法吧,把他关了,再钱打开一个新的就好了。

button 的监听是ActionListener而不是SelectionListener。
glj319
2009-05-12 · TA获得超过236个赞
知道答主
回答量:132
采纳率:0%
帮助的人:140万
展开全部
Window1:

import java.awt.BorderLayout;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import javax.swing.JButton;
import javax.swing.JPanel;
import javax.swing.WindowConstants;
import javax.swing.SwingUtilities;

public class Window1 extends javax.swing.JFrame {
private JPanel jPanel1;
private JButton jButton1;

public static void main(String[] args) {
SwingUtilities.invokeLater(new Runnable() {
public void run() {
Window1 inst = new Window1();
inst.setLocationRelativeTo(null);
inst.setVisible(true);
}
});
}

public Window1() {
super();
initGUI();
}

private void initGUI() {
try {
setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);
this.setTitle("Window1");
{
jPanel1 = new JPanel();
getContentPane().add(jPanel1, BorderLayout.CENTER);
jPanel1.setLayout(null);
{
jButton1 = new JButton();
jPanel1.add(jButton1);
jButton1.setText("OK");
jButton1.setBounds(111, 62, 103, 22);
jButton1.addMouseListener(new MouseAdapter(){
@Override
public void mouseClicked(MouseEvent e) {
Window1.this.setVisible(false);
Window1.this.dispose();
Window2 w2=new Window2();
w2.setVisible(true);
}
});
}
}
pack();
setSize(400, 300);
} catch (Exception e) {
e.printStackTrace();
}
}

}

Window2:

import javax.swing.WindowConstants;
import javax.swing.SwingUtilities;

public class Window2 extends javax.swing.JFrame {

public Window2() {
super();
initGUI();
}

private void initGUI() {
try {
setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);
this.setTitle("Window2");
pack();
setSize(400, 300);
} catch (Exception e) {
e.printStackTrace();
}
}

}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式