当前位置:编程学习 > JAVA >>

GUI中如何实现在一个匿名内部类中跳转页面

假设登录成功,弹出提示对话框,再点击确认,跳转到下一个界面,如何实现?要求是前一个界面消失,新的界面打开 --------------------编程问答-------------------- 这个和匿名内部类没关系吧。
前一个界面可以使用
setVisible(false);让其不显示,
也可以从其父级容器中remove(comp);掉这个对象。

假设父容器是JPanel jpanel
第一个显示页面是JLabel1 l1
第二个显示页面是JLabel2 l2

那么就监听方法里就
jpanel.remove(l1);
jpanel.add(l2);
jpanel.repaint();
应该就可以了吧, --------------------编程问答-------------------- 假设登录界面为LoginFrame,对话为ChatFrame,那么在监听登录按钮的时候可执行一个方法,在方法里设置loginFrame.setVisible(false); 
lhatFrame.setVisible(true);
当然,你要先获取LoginFrame和ChatFrame这两个类的引用才行,分别为loginFrame和chatFrame。 --------------------编程问答--------------------

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

希望对你有用 --------------------编程问答-------------------- 对了补充一下在内部类中想要调用外部类变量  可以使用外部类名.this.get方法  获得要关闭的外部类变量 --------------------编程问答--------------------
引用 2 楼 Kitty_night 的回复:
假设登录界面为LoginFrame,对话为ChatFrame,那么在监听登录按钮的时候可执行一个方法,在方法里设置loginFrame.setVisible(false); 
lhatFrame.setVisible(true);
当然,你要先获取LoginFrame和ChatFrame这两个类的引用才行,分别为loginFrame和chatFrame。

按你的方法试了一下,成功了,但是退出的那个界面在控制台上红灯还是亮着的,这个不算真正的退出吧?这样没事吗? --------------------编程问答--------------------
引用 5 楼 jskjdxsw 的回复:
Quote: 引用 2 楼 Kitty_night 的回复:

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

按你的方法试了一下,成功了,但是退出的那个界面在控制台上红灯还是亮着的,这个不算真正的退出吧?这样没事吗?



要退出界面的话可以点击右上角的叉叉,不过要加句话在代码里:
setDefaultCloseOperation(JFrmae.EXIT_ON_CLOSE);
加完这句话后就可以正常退出了,控制台上红灯就不会亮了,红灯亮着说明没有退出程序。
补充:Java ,  Java SE
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,