假设登录成功,弹出提示对话框,再点击确认,跳转到下一个界面,如何实现?要求是前一个界面消失,新的界面打开

解决方案 »

  1.   

    这个和匿名内部类没关系吧。
    前一个界面可以使用
    setVisible(false);让其不显示,
    也可以从其父级容器中remove(comp);掉这个对象。假设父容器是JPanel jpanel
    第一个显示页面是JLabel1 l1
    第二个显示页面是JLabel2 l2那么就监听方法里就
    jpanel.remove(l1);
    jpanel.add(l2);
    jpanel.repaint();
    应该就可以了吧,
      

  2.   

    假设登录界面为LoginFrame,对话为ChatFrame,那么在监听登录按钮的时候可执行一个方法,在方法里设置loginFrame.setVisible(false); 
    lhatFrame.setVisible(true);
    当然,你要先获取LoginFrame和ChatFrame这两个类的引用才行,分别为loginFrame和chatFrame。
      

  3.   


    if( JOptionPane.showConfirmDialog(null, "确认关闭", "确认关闭",JOptionPane.YES_NO_OPTION) == 0 )
    //弹出对话框  ,  null 是 可以换成他的父容器 , 点的是确认  返回0
    {
    f.dispose();   //f 要关闭的窗口
    new Container().setVisible(true); //新建一个你要的容器
    }希望对你有用
      

  4.   

    对了补充一下在内部类中想要调用外部类变量  可以使用外部类名.this.get方法  获得要关闭的外部类变量
      

  5.   

    按你的方法试了一下,成功了,但是退出的那个界面在控制台上红灯还是亮着的,这个不算真正的退出吧?这样没事吗?
    要退出界面的话可以点击右上角的叉叉,不过要加句话在代码里:
    setDefaultCloseOperation(JFrmae.EXIT_ON_CLOSE);
    加完这句话后就可以正常退出了,控制台上红灯就不会亮了,红灯亮着说明没有退出程序。