Java Swing 只关闭当前窗体
来源:互联网 发布:樱桃软件 编辑:程序博客网 时间:2024/05/18 19:19
看到很多人都在询问怎么在java swing中只关闭当前的窗体,因此写下此文。
主界面主要是有两个JButton,一个是通过按钮事件调起另一个JFame,另一个是关闭当前窗体。
1、关闭当前窗体不能使用setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE)方法,可以使用setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
2、通过JButton事件不能使用exit(),这样会使得整个程序的窗体全部关闭,可以使用dispose();这样就只关闭了当前窗体
具体实现如下:
NewFrame.java
import java.awt.Dimension;import java.awt.Toolkit;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import javax.swing.JButton;import javax.swing.JFrame;import javax.swing.JPanel;public class NewFrame extends JFrame {/** * called another JFrame * close this JFrame * write by Jimmy.li * time:2016/4/6 22:55 */private static final long serialVersionUID = 1L;public NewFrame() {// 普通按钮控件JFrame jf = new JFrame("main");Toolkit tk = this.getToolkit();// 得到窗口工具条int width = 650;int height = 500;Dimension dm = tk.getScreenSize();jf.setSize(300, 200);// 设置程序的大小jf.setLocation((int) (dm.getWidth() - width) / 2,(int) (dm.getHeight() - height) / 2);// 显示在屏幕中央jf.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);jf.setVisible(true);JPanel contentPane = new JPanel();jf.setContentPane(contentPane);// 创建两个按钮,并且将按钮添加到内容面板中JButton another = new JButton("另起页面");JButton close = new JButton("关闭");contentPane.add(another);contentPane.add(close);another.addActionListener(new ActionListener() {@Overridepublic void actionPerformed(ActionEvent e) {// TODO Auto-generated method stubnew exit();}});close.addActionListener(new ActionListener() {@Overridepublic void actionPerformed(ActionEvent e) {// TODO Auto-generated method stubSystem.exit(0);}});}public static void main(String[] args){new NewFrame();}}
效果图如下:
只关闭exit的窗体,而不涉及父窗体。
exit.java代码如下
import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import javax.swing.JButton;import javax.swing.JFrame;import javax.swing.JPanel;/** * called another JFrame close this JFrame write by Jimmy.li time:2016/4/6 22:55 */public class exit {private static final int WIDTH = 300;private static final int HEIGHT = 200;public exit() {// 普通按钮控件final JFrame jf = new JFrame("exit");jf.setSize(WIDTH, HEIGHT);jf.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);jf.setVisible(true);JPanel contentPane = new JPanel();jf.setContentPane(contentPane);// 创建两个按钮并添加到内容面板JButton close1 = new JButton("关闭");contentPane.add(close1);close1.addActionListener(new ActionListener() {@Overridepublic void actionPerformed(ActionEvent e) {// TODO Auto-generated method stub// System.exit(0);jf.dispose();}});}public static void main(String[] args){new exit();}}
这样通过点击关闭按钮,只关闭了当前的exit窗体,而父窗体还存在。
Good luck!
Write by Jimmy.li
0 0
- Java Swing 只关闭当前窗体
- 关于Java Swing的窗体关闭事件的调用关系
- Swing 窗体关闭对话框提示
- Swing 窗体关闭对话框提示
- Java Swing 窗体居中
- java Swing 窗体设计
- java 窗体程序swing
- Java swing 窗体居中
- java多窗口关闭事件设置只关闭当前窗口而不关闭主线程
- C# 关闭当前窗体打开另一窗体?
- VB 关闭窗口,关闭当前窗体
- java swing窗体圆角
- java-swing-设置窗体大小
- C#只关闭指定 ‘子 ’窗体代码
- 关闭当前窗体而不退出应用程序
- C# 关闭当前窗体开启一个新的窗体
- Java swing开发|Java实现窗体隐藏
- SWING 窗体关闭提示确认 的实现总结
- 欢迎使用CSDN-markdown编辑器
- 1005-贪心初步
- 1
- 《leetCode》:Implement Stack using Queues
- 放大缩小图片
- Java Swing 只关闭当前窗体
- 深入掌握JMS(三):MessageListener
- nyoj 23
- shell判断文件是否存在
- 字符串逆序
- 选择不相交区间 小结
- nodejs(一)
- ruby on rails 入门注意事项
- (学习笔记2)开发环境的配置及MFC创建流程