看到很多人都在询问怎么在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() {

@override

public void actionperformed(actionevent e) {

// todo auto-generated method stub

new exit();

}

});

close.addactionlistener(new actionlistener() {

@override

public void actionperformed(actionevent e) {

// todo auto-generated method stub

system.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() {

@override

public void actionperformed(actionevent e) {

// todo auto-generated method stub

// system.exit(0);

jf.dispose();

}

});

}

public static void main(string[] args)

{

new exit();

}

}

这样通过点击关闭按钮,只关闭了当前的exit窗体,而父窗体还存在。

补充知识:java中jframe和frame的窗体关闭区别

在jframe中是使用setdefaultcloseoperation()方法的,例如:

win.setdefaultcloseoperation(jframe.exit_on_close);

在frame中是使用一个事件监听器,如下:

win.addwindowlistener(new windowadapter(){

public void windowclosing(windowevent e){

system.exit(0);

}

});

以上这篇java swing 只关闭当前窗体的实现就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持萬仟网。

如您对本文有疑问或者有任何想说的,请点击进行留言回复,万千网友为您解惑!

java swing 关闭_Java Swing 只关闭当前窗体的实现相关推荐

  1. java jframe教程_Java Swing JFrame窗口的实现

    1. 概述 官方JavaDocsApi: javax.swing.JFrame JFrame,窗口.JFrame 是一个可以独立显示的组件,一个窗口通常包含有标题.图标.操作按钮(关闭.最小化.最大化 ...

  2. java socket 一边关闭_java socket - 半关闭

    通常,使用关闭输出流来表示输出已经结束.但在进行网络通信时则不能这样做.因为我们关闭输出流时,该输出流对应的Socket也将随之关闭,这样程序将无法再从该socket中读取数据. 为了应付这种情况,s ...

  3. java swing背景_java swing 设置背景图片的方法一

    下面是偶写着玩的下测试的代码:(不好之处,请多多指教,大家共同进步 ) import java.awt.*; import javax.swing.*; public class ImageDemo ...

  4. java jlabel用法_java swing JLabel详解以及使用示例

    JLabel 对象可以显示文本.图像或同时显示二者.可以通过设置垂直和水平对齐方式,指定标签显示区中标签内容在何处对齐.默认情况下,标签在其显示区内垂直居中对齐.默认情况下,只显示文本的标签是开始边对 ...

  5. java swing 图层_Java swing图层的问题

    我想详细了解swing的多层图层知识,看下面两个代码为什么出来的效果是不一样的?importjavax.swing.*;importjava.awt.*;publicclassMycanvas1{pu ...

  6. java swing流程图_Java Swing 介绍

    Swing 是一个为Java设计的GUI工具包. Swing是JAVA基础类的一部分. Swing包括了图形用户界面(GUI)器件如:文本框,按钮,分隔窗格和表. Swing提供许多比AWT更好的屏幕 ...

  7. java监控任务进度_Java Swing组件实现进度监视功能示例

    本文实例讲述了java swing组件实现进度监视功能.分享给大家供大家参考,具体如下: 实例一: import java.awt.event.actionevent; import java.awt ...

  8. c java socket编程_java+swing C/s模式的socket编程与长短连接

    java+swing C/s模式的socket编程与长短连接 什么是socket 长连接与短连接 所谓长连接,指在一个TCP连接上可以连续发送多个数据包,在TCP连接保持期间,如果没有数据包发送,需要 ...

  9. java jradiobutton使用_Java Swing组件单选框JRadioButton用法示例

    本文实例讲述了Java Swing组件单选框JRadioButton用法.分享给大家供大家参考,具体如下: JRadioButton是Swing中的单选框.所谓单选框是指,在同一个组内虽然有多个单选框 ...

最新文章

  1. PHP magic_quotes_gpc
  2. 【总结】DIV+CSS有可能遇到的问题
  3. 计算机二级c语言第82套,计算机等级考试二级C语言模拟试题十套答案
  4. java反显是什么_卡西欧反显是什么意思
  5. C#中网络编程异步操作方法与 粘包和分包问题
  6. oracle mysql认证考试流程_报考oraclemysql认证考试流程有些什么步骤
  7. OpenCV——Haar特征
  8. 算法在计算机中的作用
  9. Emscripten 单词_人教版高中英语单词表音频(汇总版)
  10. 阿里的《基于pai的推荐系统》--摘抄笔记
  11. Java实现的快递柜管理系统(附上完整代码可用作期末课程设计)
  12. 用qq的功能进行屏幕录制
  13. python class namedtuple 效率_菜鸟世界 -python进阶之 namedtuple
  14. JAVA数组首位末位互换_数组元素前移,第一个元素放置数组末位
  15. unicode字符的转换
  16. 【hadoop】hbase配置
  17. 马克思主义句句是名言
  18. 用innobackupex做全量备份
  19. windows局域网传输文件
  20. 树莓派4B——Ubuntu20.04 mate

热门文章

  1. html ajax 双引号的问题
  2. WSP (无线会话协议)
  3. Java Core系列之ConcurrentHashMap实现(JDK 1.7)
  4. maya2015 改变界面语言
  5. infobright安装部署及参数调整优化
  6. ORACLE 等待事件
  7. Exchange2003-2010迁移系列之十三,Exchange邮箱迁移
  8. 想要写好的程序应该远离计算机
  9. 删除VS.NET起始页上项目名称的方法.
  10. 信息学奥赛一本通 2057:【例3.9 】星期几