java swing 关闭_Java Swing 只关闭当前窗体的实现
看到很多人都在询问怎么在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 只关闭当前窗体的实现相关推荐
- java jframe教程_Java Swing JFrame窗口的实现
1. 概述 官方JavaDocsApi: javax.swing.JFrame JFrame,窗口.JFrame 是一个可以独立显示的组件,一个窗口通常包含有标题.图标.操作按钮(关闭.最小化.最大化 ...
- java socket 一边关闭_java socket - 半关闭
通常,使用关闭输出流来表示输出已经结束.但在进行网络通信时则不能这样做.因为我们关闭输出流时,该输出流对应的Socket也将随之关闭,这样程序将无法再从该socket中读取数据. 为了应付这种情况,s ...
- java swing背景_java swing 设置背景图片的方法一
下面是偶写着玩的下测试的代码:(不好之处,请多多指教,大家共同进步 ) import java.awt.*; import javax.swing.*; public class ImageDemo ...
- java jlabel用法_java swing JLabel详解以及使用示例
JLabel 对象可以显示文本.图像或同时显示二者.可以通过设置垂直和水平对齐方式,指定标签显示区中标签内容在何处对齐.默认情况下,标签在其显示区内垂直居中对齐.默认情况下,只显示文本的标签是开始边对 ...
- java swing 图层_Java swing图层的问题
我想详细了解swing的多层图层知识,看下面两个代码为什么出来的效果是不一样的?importjavax.swing.*;importjava.awt.*;publicclassMycanvas1{pu ...
- java swing流程图_Java Swing 介绍
Swing 是一个为Java设计的GUI工具包. Swing是JAVA基础类的一部分. Swing包括了图形用户界面(GUI)器件如:文本框,按钮,分隔窗格和表. Swing提供许多比AWT更好的屏幕 ...
- java监控任务进度_Java Swing组件实现进度监视功能示例
本文实例讲述了java swing组件实现进度监视功能.分享给大家供大家参考,具体如下: 实例一: import java.awt.event.actionevent; import java.awt ...
- c java socket编程_java+swing C/s模式的socket编程与长短连接
java+swing C/s模式的socket编程与长短连接 什么是socket 长连接与短连接 所谓长连接,指在一个TCP连接上可以连续发送多个数据包,在TCP连接保持期间,如果没有数据包发送,需要 ...
- java jradiobutton使用_Java Swing组件单选框JRadioButton用法示例
本文实例讲述了Java Swing组件单选框JRadioButton用法.分享给大家供大家参考,具体如下: JRadioButton是Swing中的单选框.所谓单选框是指,在同一个组内虽然有多个单选框 ...
最新文章
- PHP magic_quotes_gpc
- 【总结】DIV+CSS有可能遇到的问题
- 计算机二级c语言第82套,计算机等级考试二级C语言模拟试题十套答案
- java反显是什么_卡西欧反显是什么意思
- C#中网络编程异步操作方法与 粘包和分包问题
- oracle mysql认证考试流程_报考oraclemysql认证考试流程有些什么步骤
- OpenCV——Haar特征
- 算法在计算机中的作用
- Emscripten 单词_人教版高中英语单词表音频(汇总版)
- 阿里的《基于pai的推荐系统》--摘抄笔记
- Java实现的快递柜管理系统(附上完整代码可用作期末课程设计)
- 用qq的功能进行屏幕录制
- python class namedtuple 效率_菜鸟世界 -python进阶之 namedtuple
- JAVA数组首位末位互换_数组元素前移,第一个元素放置数组末位
- unicode字符的转换
- 【hadoop】hbase配置
- 马克思主义句句是名言
- 用innobackupex做全量备份
- windows局域网传输文件
- 树莓派4B——Ubuntu20.04 mate