dispose方法和setvisible方法的区别:

dispose()撤销当前窗口,并释放当前窗口所使用的资源。
setVisible()方法仅仅隐藏窗体,可设置窗口是否可见,窗口默认是不可见的。

在使用dispose()和setVisible()方法时,表面上没有任何区别。

setVisible方法的使用:

JFrame​ window=new JFrame ()​;
//window. setVisible (true)​;//设置窗口可见。
window. setVisible (false)​;//设置窗口不可见。
window.pack();//关闭的窗体可用pack和show方法恢复

对于主窗口,可以使用下面的方法关闭,整个程序也相应退出

setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

如果要关掉子窗口,子窗口的相关资源也要释放,但是主程序不能退出,那么就要使用dispose()方法。

dispose方法的使用:

package widow;import javax.swing.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;public class text extends JFrame {public static void main(String[]args){text t = new text();t.launch();}public void launch(){try{UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());}   catch(Exception e){e.printStackTrace();}JMenuBar menuBar = new JMenuBar();JMenu menu = new JMenu("menu");JMenuItem item = new JMenuItem("item");menu.add(item);item.addActionListener(new ActionListener() {@Overridepublic void actionPerformed(ActionEvent e) {final JFrame child = new JFrame("popupFrame");child.setDefaultCloseOperation(DO_NOTHING_ON_CLOSE);child.addWindowListener(new WindowAdapter() {@Overridepublic void windowClosing(WindowEvent e) {//调用这个方法之后,child 的相关资源全都会释放。child.dispose();}});child.setSize(260,150);child.setLocation(400,300);child.setVisible(true);}});menuBar.add(menu);setJMenuBar(menuBar);setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);setLocation(300,200);setSize(300,200);setVisible(true);}
}

dispose方法的使用摘自他人博客(本人新手还写不出来):https://blog.csdn.net/Folmarcher/article/details/50890727?utm_source=app

dispose方法和setvisible方法的区别和使用相关推荐

  1. 请简述一下线程的sleep()方法和yield()方法的区别?

    请简述一下线程的sleep()方法和yield()方法的区别? ①sleep()方法给其他线程机会时不考虑线程的优先级,因此会给低优先级的线程以运行的机会. yield()方法只会给相同优先级或更高优 ...

  2. Java并发编程—schedule方法和scheduleAtFixedRate方法的区别

    原文作者:一叶丿清风 原文地址:schedule方法和scheduleAtFixedRate方法的区别 schedule方法和scheduleAtFixedRate方法都可以实现任务的延时和不延时执行 ...

  3. flush方法和close方法的区别

    package com.learn.Demo05Writer;import java.io.FileWriter; import java.io.IOException;/*flush方法和close ...

  4. ExtJS中listener方法和handler方法的区别

    listener方法和handler方法的区别在文档中的说明的太玄乎了,看不懂 listeners监听能够对一个click Event事件添加任意多个的事件响应处理函数 而handler处理只能够通过 ...

  5. python predict_对Keras中predict()方法和predict_classes()方法的区别说明

    1 predict()方法 当使用predict()方法进行预测时,返回值是数值,表示样本属于每一个类别的概率,我们可以使用numpy.argmax()方法找到样本以最大概率所属的类别作为样本的预测标 ...

  6. java——Scanner中nextLine()方法和next()方法的区别

    遇到一个有意思的东西,在整理字符串这块知识的时候,发现我在用Scanner函数时,在字符串中加入空格,结果空格后面的东西没有输出来(/尴尬),不多说直接上代码: import java.util.Sc ...

  7. get方法和post方法的区别及常用的请求方式

    get方法和post方法的区别: get方法是从服务器上获取资源:post方法是向服务器传送数据: get方法参数是通过url传递的,post方法是放在request body中:GET比POST更不 ...

  8. Keras中predict()方法和predict_classes()方法的区别

    正如上篇博客中所讲,在Keras框架下执行深度学习任务时,一般会先根据训练数据集训练出模型,然后拿训练好的模型到生产环境(测试集)中部署并生产.以分类问题为例,当训练好了分类模型之后,我们要用这个模型 ...

  9. VBA中Activate方法和Select方法的区别

    VBA中的Activate方法和Select方法看起来似乎相同,其实二者是有区别的.Activate方法的作用是激活,而Select方法的作用是选择.其区别如下: 1.对于"Sheets&q ...

最新文章

  1. Microsoft SQL Server学习(二)--数据库的语法
  2. 在Servlet中处理表单提交的数据
  3. css3 选择器_CSS 3
  4. 常见的几种最优化方法
  5. 云炬WEB开发教程2-2 node.js和npm介绍和安装
  6. android 查看多个图片,一分钟实现Android多张图片选择
  7. 常见的排序算法二——希尔排序
  8. 将一张图片修改为合适的像素大小
  9. 从微店到小程序店,微商仍是电商途中的苦行僧?
  10. [USACO11DEC] 牧草种植Grass Planting
  11. 拓端tecdat|用R语言用Nelson Siegel和线性插值模型对债券价格和收益率建模
  12. CUDA驱动版本与运行版本不匹配问题详解
  13. GoogleEarth的安装与使用
  14. win7电脑误删鼠标键盘驱动_鼠标键盘,教您怎么解决键盘和鼠标失灵的问题
  15. 计算机中怎样算2的21次方,脑筋急转弯:2的31次方与3的21次方哪个大?天才知道!...
  16. 二手手机验机教程(不拆机)
  17. 技术决胜年----谈谈我2018年的新观念新思想
  18. docker实战——在测试中使用Docker
  19. springboott整合mybatis-plus和sharding-jdbc实现分库分表和读写分离(含完整项目代码)
  20. Django中多对多查询方式

热门文章

  1. [redis 源码走读] 主从数据复制(上)
  2. 小记:让页面自适应屏幕分辨率
  3. Smokeping主从搭建
  4. FPGA与普通数字芯片设计流程的差异
  5. 联合国首发幸福指数排名 丹麦居首中国112位
  6. 计算机相关本科专业汇总,计算机专业本科毕业论文汇总.doc
  7. meteor Template
  8. 小心漏洞隐患 你的NETGEAR路由器升级了吗
  9. 学生成绩abcde怎样划分_高考abc等级怎么划分 高考题ABCDE级如何划分?
  10. Web前端之HTML常用标记