Java GUI实现多个窗口切换效果
更新时间:2022年04月26日 18:11:41 作者:养猪去
这篇文章主要为大家详细介绍了Java GUI实现多个窗口的切换效果,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
本文实例为大家分享了Java GUI实现多个窗口切换效果的具体代码,供大家参考,具体内容如下
功能:
主要实现的功能为实现多个界面的切换,并且一个window的打开和关闭可以影响其他window。
不足:
①可以多次多开同一个界面(可以加一个变量控制)
②没有实现一个的窗体关闭,它的子窗体也随即关闭的效果
效果图:
第一个界面(主界面)
package 多界面跳转; import javax.swing.*; import java.awt.*; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.event.WindowEvent; import java.awt.event.WindowListener; class Frame1 extends JFrame implements WindowListener { JButton b2 = new JButton("界面2"); JButton b11 = new JButton("界面11"); private class btListener implements ActionListener { public void actionPerformed(ActionEvent e) { if(e.getActionCommand().equals("界面2")) { setVisible(false); new Frame2(); } else if(e.getActionCommand().equals("界面11")) { new Frame11(); } } } public Frame1() { this.setTitle("界面1"); this.setSize(400, 300); this.setLayout(new FlowLayout()); b11.addActionListener(new btListener()); b2.addActionListener(new btListener()); this.add(b11); this.add(b2); this.setDefaultCloseOperation(EXIT_ON_CLOSE); this.setLocationRelativeTo(null); } public void windowOpened(WindowEvent e) { } public void windowClosing(WindowEvent e) { setVisible(true); } public void windowClosed(WindowEvent e) { } public void windowIconified(WindowEvent e) { } public void windowDeiconified(WindowEvent e) { } public void windowActivated(WindowEvent e) { } public void windowDeactivated(WindowEvent e) { } public static void main(String[] args) { Frame1 f1 = new Frame1(); f1.setVisible(true); } }
第二个界面
package 多界面跳转; import javax.swing.*; import java.awt.*; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.event.WindowAdapter; import java.awt.event.WindowEvent; class Frame2 extends JFrame implements ActionListener { JButton bt = new JButton("界面21"); Frame2() { this.setSize(350, 300); this.setLocationRelativeTo(null); this.setLayout(new FlowLayout()); this.setTitle("界面2"); this.add(bt); bt.addActionListener(this); this.addWindowListener(new Frame1()); this.addWindowListener(new Frame11()); this.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE); this.setVisible(true); } @Override public void actionPerformed(ActionEvent e) { new Frame21(); } }
由第一个界面打开的界面
package 多界面跳转; import javax.swing.*; import java.awt.*; import java.awt.event.WindowEvent; import java.awt.event.WindowListener; class Frame11 extends JFrame implements WindowListener { Frame11() { this.setSize(300, 200); this.setLocationRelativeTo(null); this.setTitle("界面11"); this.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE); this.setVisible(true); } @Override public void windowOpened(WindowEvent e) { // TODO Auto-generated method stub } @Override public void windowClosing(WindowEvent e) { // TODO Auto-generated method stub if(this.isVisible()) { // setSize(800,600); } } @Override public void windowClosed(WindowEvent e) { // TODO Auto-generated method stub } @Override public void windowIconified(WindowEvent e) { // TODO Auto-generated method stub } @Override public void windowDeiconified(WindowEvent e) { // TODO Auto-generated method stub } @Override public void windowActivated(WindowEvent e) { // TODO Auto-generated method stub } @Override public void windowDeactivated(WindowEvent e) { // TODO Auto-generated method stub } }
由第二个界面打开的界面
package 多界面跳转; import javax.swing.*; import java.awt.*; class Frame21 extends JFrame { Frame21() { this.setSize(150, 100); this.setLocationRelativeTo(null); this.setTitle("界面21"); this.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE); this.setVisible(true); } }
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。
相关文章
Springboot RestTemplate设置超时时间的简单方法
学习springboot ,RestTemplate的使用场景非常非常多,比如springcloud中的服务消费,下面这篇文章主要给大家介绍了关于Springboot RestTemplate设置超时时间的简单方法,需要的朋友可以参考下2022-01-01Java C++题解leetcode 1684统计一致字符串的数目示例
这篇文章主要为大家介绍了Java C++题解leetcode 1684统计一致字符串的数目示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪2023-01-01MyBatis Plus Mapper CRUD接口测试方式
在数据库管理系统中,插入记录是添加新数据条目,而删除操作包括根据主键ID单条删除和批量删除,也可以基于特定条件进行删除,删除操作的SQL语句是通过键值对在Map中拼接而成,如delete from 表 where key1=value1 AND key2=value22024-09-09SpringBoot如何读取war包jar包和Resource资源
这篇文章主要介绍了SpringBoot如何读取war包jar包和Resource资源,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下2020-01-01
最新评论