我要在NewPanel里面关闭NewJFrame,我在NewPanel里面对取消按钮做了监听,但是我在里面调用newNewJFrame().dispose();屏幕闪烁了下我想窗口时关闭了但是在使用dispose()方法的时候又n...
我要在NewPanel里面关闭NewJFrame,我在NewPanel里面对取消按钮做了监听,但是我在里面调用 new NewJFrame().dispose(); 屏幕闪烁了下 我想窗口时关闭了但是 在使用dispose() 方法的时候 又new 了个 NewJFrame导致又创建了个新对象,哪位帮帮忙啊。 先给20分,解决了再加
public class NewJFrame extends JFrame
{
NewJFrame()
{
setTitle("用户注册");
this.add(new NewPanel());
this.setSize(300,300);
this.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
this.setVisible(true);
}
}
class NewPanel extends JPanel
{
NewPanel()
{
JLabel lab1 = new JLabel("请输入用户名:");
final JTextField text1 = new JTextField(10);
Box hbox1 = Box.createHorizontalBox();
hbox1.add(lab1);
hbox1.add(Box.createHorizontalStrut(28));
hbox1.add(text1);
this.add(hbox1);
JLabel lab2 = new JLabel("请输入密码: ");
final JPasswordField text2 = new JPasswordField(10);
Box hbox2 = Box.createHorizontalBox();
hbox2.add(lab2);
hbox2.add(Box.createHorizontalStrut(29));
hbox2.add(text2);
this.add(hbox2);
JLabel lab3 = new JLabel("请再次输入密码:");
final JPasswordField text3 = new JPasswordField(10);
Box hbox3 = Box.createHorizontalBox();
hbox3.add(lab3);
hbox3.add(Box.createHorizontalStrut(15));
hbox3.add(text3);
this.add(hbox3);
JLabel lab4 = new JLabel("请输入开户金额:");
final JTextField text4 = new JTextField(10);
Box hbox4 = Box.createHorizontalBox();
hbox4.add(lab4);
hbox4.add(Box.createHorizontalStrut(15));
hbox4.add(text4);
this.add(hbox4);
JButton btn = new JButton("确定");
btn.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e)
{
}});
JButton btn1 = new JButton("取消");
btn1.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e)
{
!!!!这里应该写什么?
}});
Box hbox5 = Box.createHorizontalBox();
hbox5.add(btn);
hbox5.add(Box.createHorizontalStrut(25));
hbox5.add(btn1);
this.add(hbox4);
Box vbox = Box.createVerticalBox();
vbox.add(Box.createVerticalStrut(20));
vbox.add(hbox1);
vbox.add(Box.createVerticalStrut(10));
vbox.add(hbox2);
vbox.add(Box.createVerticalStrut(10));
vbox.add(hbox3);
vbox.add(Box.createVerticalStrut(10));
vbox.add(hbox4);
vbox.add(Box.createVerticalStrut(20));
vbox.add(hbox5);
this.add(vbox);
}
}
这个是个子窗口,按下取消关闭当前窗口, 不用 System.exit(0);
我觉得这里主要的问题就是在不能创建对象实例的情况下调用非静态的dispose() 函数,但这样是不能实现的。
谁有其他的方法关闭当前窗口,而不结束住程序?
展开