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方法 获得要关闭的外部类变量 --------------------编程问答--------------------
按你的方法试了一下,成功了,但是退出的那个界面在控制台上红灯还是亮着的,这个不算真正的退出吧?这样没事吗? --------------------编程问答--------------------
要退出界面的话可以点击右上角的叉叉,不过要加句话在代码里:
setDefaultCloseOperation(JFrmae.EXIT_ON_CLOSE);
加完这句话后就可以正常退出了,控制台上红灯就不会亮了,红灯亮着说明没有退出程序。
补充:Java , Java SE