dispose()在GUI中不起作用,因为旧的JFrame仍显示为新的Frame



这是密码。我正在尝试通过单击按钮在用户界面中从关闭一个JFrame移动到另一个(打开(新的JFrame。但当我关闭旧的JFrame时,新的也正在消失

public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub

try
{
if(e.getSource()==btn )
{
dispose();
customer s =new customer();
s.setVisible(true);
s.pack();
s.setLocationRelativeTo(null);
s.setExtendedState(JFrame.MAXIMIZED_BOTH);
CloseFrame();


}

if(e.getSource()==btn1)
{
dispose();
pet p =new pet();
p.setVisible(true);
p.pack();
p.setLocationRelativeTo(null);
p.setExtendedState(JFrame.MAXIMIZED_BOTH);


}
if(e.getSource()==btn2)
{
dispose();
Transaction t =new Transaction();
t.setVisible(true);
t.pack();
t.setLocationRelativeTo(null);
t.setExtendedState(JFrame.MAXIMIZED_BOTH);
CloseFrame();

}   

}
catch(Exception e1)
{}        
}   

这是您程序的框架吗?还是JDialog?JDialog应该对dispose((没有问题。您可以使用frame.dispose()以这种方式处理主框架。但前提是这是你唯一的框架。在GUI中,您可能永远不会使用多个帧。JDialog是使用其他窗口的方法。

我还看到您尝试使用getSource()方法编写Actionlistener。我建议您为此明确使用一个新类。则只需使用按钮本身创建一个CCD_ 3。

MyListener类的第一行是:

public class MyListener implements ActionListener。如果你想了解这一点,我建议你阅读抽象类和方法、面向对象编程和接口。

这对你有帮助吗?

最新更新