1. package common;
  2.  
  3. import javax.swing.JFrame;
  4. import javax.swing.SwingUtilities;
  5.  
  6. /*2015-5-26*/
  7. public class SwingConsole {
  8.  
  9. public static void run(final JFrame frame,final int width,final int height){
  10. SwingUtilities.invokeLater(new Runnable() {
  11.  
  12. @Override
  13. public void run() {
  14. frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  15. frame.setSize(width, height);
  16. frame.setTitle(frame.getClass().getSimpleName());
  17. frame.pack();// //该代码依据放置的组件设定窗口的大小使之正好能容纳你放置的所有组件
  18. frame.setVisible(true);
  19. frame.setLocationRelativeTo(null);
  20. }
  21. });
  22. }
  23. }
  1. package dialogclose;
  2.  
  3. import java.awt.Dimension;
  4. import java.awt.FlowLayout;
  5. import java.awt.event.ActionEvent;
  6. import java.awt.event.ActionListener;
  7.  
  8. import javax.swing.JButton;
  9. import javax.swing.JFrame;
  10. import javax.swing.JTextField;
  11.  
  12. /*2015-6-3*/
  13. public class JFrameDemo extends JFrame {
  14. private static final long serialVersionUID = 1L;
  15. private JButton button;
  16. private JTextField result;
  17.  
  18. public JFrameDemo() {
  19. // this.setLayout(new GridLayout(4, 4));
  20. this.setLayout(new FlowLayout());
  21. button = new JButton("click");
  22. getContentPane().add(button);
  23. result = new JTextField("...");
  24. result.setPreferredSize(new Dimension(200, 20));
  25. getContentPane().add(result);
  26. }
  27.  
  28. public static void main(String[] args) {
  29. final JFrameDemo frame = new JFrameDemo();
  30. frame.button.addActionListener(new ActionListener() {
  31.  
  32. @Override
  33. public void actionPerformed(ActionEvent e) {
  34. System.out.println("before open dialog");
  35. JDialogController dlg = new JDialogController(frame);
  36. frame.result.setText("Result:" + dlg.isCancel());
  37. System.out.println("after close dialog");
  38. if (dlg.isCancel()) {
  39. System.out.println("is canceled");
  40. return;
  41. }
  42. System.out.println(dlg.isCancel());
  43. }
  44. });
  45.  
  46. common.SwingConsole.run(frame, 800, 600);
  47.  
  48. }
  49.  
  50. }
  1. package dialogclose;
  2.  
  3. import java.awt.event.WindowAdapter;
  4. import java.awt.event.WindowEvent;
  5.  
  6. import javax.swing.JDialog;
  7. import javax.swing.JFrame;
  8. import javax.swing.JOptionPane;
  9.  
  10. /*2015-6-3*/
  11. public class JDialogController {
  12.  
  13. private boolean cancel = true;
  14.  
  15. public JDialogController(JFrame parent) {
  16. final JDialogDemo dlg = new JDialogDemo(parent);
  17. dlg.setDefaultCloseOperation(JDialog.DISPOSE_ON_CLOSE);
  18. /*dlg.addWindowListener(new WindowAdapter() {
  19.  
  20. @Override
  21. public void windowClosing(WindowEvent e) {
  22. int result = JOptionPane.showConfirmDialog(dlg, "是否退出本系统!", "退出消息框", JOptionPane.YES_NO_OPTION, JOptionPane.QUESTION_MESSAGE);
  23. if (result == JOptionPane.YES_OPTION)
  24. {
  25. System.out.println("Choose Yes");
  26. System.exit(0);
  27. }
  28. else if (result == JOptionPane.NO_OPTION)
  29. {
  30. System.out.println("Choose No");
  31. dlg.setVisible(true);
  32. dlg.validate();
  33. }
  34. }
  35.  
  36. });*/
  37.  
  38. dlg.setVisible(true);
  39. }
  40.  
  41. public boolean isCancel() {
  42. return cancel;
  43. }
  44. }
  1. package dialogclose;
  2.  
  3. import java.awt.FlowLayout;
  4.  
  5. import javax.swing.JDialog;
  6. import javax.swing.JFrame;
  7. import javax.swing.JTextField;
  8.  
  9. /*2015-6-3*/
  10. public class JDialogDemo extends JDialog {
  11. private static final long serialVersionUID = 1L;
  12.  
  13. private boolean cancel=true;
  14. public JDialogDemo(JFrame parent) {
  15. super(parent,true);
  16. this.setLayout(new FlowLayout());
  17. this.setSize(400, 200);
  18.  
  19. this.add(new JTextField("test"));
  20. this.setLocationRelativeTo(null);
  21. }
  22. public boolean isCancel() {
  23. return cancel;
  24. }
  25. }

关闭JDialog的几个方法:
1、如果你只是想让该对象隐藏起来,就在按扭的事件处理方法中让使用dialog.setVisible(false);方法;
2、如果你想关闭的时候让该对话框释放资源而又不退出程序,可以使用dialog.dispose();
方法或dialog.setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE);

  dlg.setDefaultCloseOperation(JDialog.DISPOSE_ON_CLOSE);

3、如果你想关闭的时候退出程序可以使用System.exit(0); 
用dispose()关闭
this.setDefaultCloseOperation(JDialog.DO_NOTHING_ON_CLOSE);   
this.addWindowListener(new WindowAdapter(){     
  public void windowClosing(WindowEvent e) {       
  dispose();     
  }   
});
http://www.cnblogs.com/jaward/articles/2826924.html

JTextField设置长度
JTextField jtf = new JTextField(130); 

public void setPreferredSize(Dimension preferredSize)
http://www.iteye.com/problems/89359

JFrame类的其他常用方法:
 1.setBounds(int x,int y,int width,int height):参数x,y指定窗口出现在屏幕的位置;参数width,height指定窗口的宽度和高度。单位是像素。
 2.setSize(int width,int height):设置窗口的大小,参数width和height指定窗口的宽度和高度,单位是像素。
 3.setBackground(Color c):以参数 c设置窗口的背景颜色。
 4.setVisible(boolean b):参数b设置窗口是可见或不可见。JFrame默认是不可见的。
 5.pack():用紧凑方式显示窗口。如果不使用该方法,窗口初始出现时可能看不到窗口中的组件,当用户调整窗口的大小时,可能才能看到这些组件。
http://www.cnblogs.com/Coda/p/4550219.html

JFrame、JDialog close的更多相关文章

  1. Java GUI 顶级容器JFrame、JDialog

    JFrame的常用构造函数: JFrame() JFrame(String title)   //窗口标题,会显示在左上角窗体图标的后面 JDialog的常用构造函数: JDialog() JDial ...

  2. 总结-swing、JFrame、JScrollPane、JTabbedPane、JEditorPane

    总结-swing.JFrame.JButton.JScrollPane.JLabel.JTabbedPane.JEditorPane 1.JButton内边距(去掉按钮里的空白):setMargin2 ...

  3. JFrame、JPanel 、Layout开发的简单例子

    写了Java这么久,居然发现想手写一个带网格袋布局的JFrame,还不记得怎么写,写了这么多代码真不敢说记得所有细节. 幸好,只要记清楚概念就能快速开发.首先,明确一下3种容器类的差别和用途: No. ...

  4. 【java】详解JFrame结构的分层

    在这篇博文中,笔者会介绍JFrame窗口的分层.JFrame继承自Frame,同JFrame.JDialog.JApplet都是重量级组件.如果不弄清楚Frame的分层结构,那么在设置组件的某些特效的 ...

  5. JFrame 的层次结构 及 背景设置说明

    感谢原文:https://blog.csdn.net/qq_32006373/article/details/49659129 一.JFrame 的层次结构 我们通过两个图来说明一下 JFrame 的 ...

  6. java Swing组件和事件处理

    1.常见的容器 JComponent是 Container 的子类,中间容器必须添加到底层容器中才能够发挥作用, JPanel 面板 :使用jPanel 创建一个面板,再通过添加组件到该面板上面,JP ...

  7. Java快速入门-03-小知识汇总篇(全)

    Java快速入门-03-小知识汇总篇(全) 前两篇介绍了JAVA入门的一系小知识,本篇介绍一些比较偏的,说不定什么时候会用到,有用记得 Mark 一下 快键键 常用快捷键(熟记) 快捷键 快捷键作用 ...

  8. swing中的分层

    swing中的分层 摘自:https://blog.csdn.net/levelmini/article/details/26692205 2014年05月23日 12:42:56 阅读数:1244 ...

  9. java基础day05---界面

    java基础day05---界面 1.GUI:图形用户界面(Graphics User Interface) 开发工具包AWT抽象窗口把工具箱===>swing 解决了awt存在的lcd问题== ...

随机推荐

  1. SPOJ DISUBSTR(后缀数组)

    传送门:DISUBSTR 题意:给定一个字符串,求不相同的子串. 分析:对于每个sa[i]贡献n-a[i]个后缀,然后减去a[i]与a[i-1]的公共前缀height[i],则每个a[i]贡献n-sa ...

  2. random_shuffle (stl算法)打乱顺序 - 飞不会的日志 - 网易博客

    random_shuffle (stl算法)打乱顺序 - 飞不会的日志 - 网易博客 random_shuffle (stl算法)打乱顺序 2012-03-31 10:39:11|  分类: 算法 | ...

  3. 使用CXF创建REST WEBSERVICE

    简单小结下CXF跟REST搭配webservice的做法,直接举代码为样例: 1 order.java   package com.example.rest; import javax.xml.bin ...

  4. vb.net WPF webbrowser window.close 关闭后不触发 WindowClosing 事件 WNDPROC解决方式

     vb.net WPF webbrowser window.close 关闭后不触发 WindowClosing 事件 WNDPROC解决方式 #Region "WPF 当浏览器窗体关闭 ...

  5. Oracle自增列创建方法

    最近在做Oracle的项目,由于以前没有接触过Oracle的开发,遇到了不少的问题,比如给Oracle表添加自增列,与SQL Server就不同. Oracle没有自增字段这样的功能,但是通过触发器( ...

  6. unity3d由于Camera.main.transform报空引用错误的解决方案

    今天在导入character包后,引用了内置的第三人称素材,但是在启动的时候程序报空引用的错误: 引起错误的位置在: 错误原因是因为没有将摄像机的tag设置为maincamera,改为maincame ...

  7. WPF动态改变主题颜色

    原文:WPF动态改变主题颜色 国内的WPF技术先行者周银辉曾介绍过如何动态改变应用程序的主题样式,今天我们来介绍一种轻量级的改变界面风格的方式--动态改变主题色. 程序允许用户根据自己的喜好来对界面进 ...

  8. 开源企业IM-免费企业即时通讯-ENTBOOST V2014.183 Windows版本号正式宣布

    ENTBOOST,VERSION 2014.183 Windows(点击下载)版本号公布.主要添加PC端P2P(点对点)文件传输功能:公布安卓Android手机clientAPP 1.0版本号.公布苹 ...

  9. 世纪互联、微软Azure与无穷小微积分

              今年9月25日,世纪互联正式开通微软Azure商用服务,有感.          我是世纪互联创业历程的见证人(之中的一个),现在看到世纪互联推出微软Azure公有云的商用服务,心 ...

  10. 怎样从Hadoop安全模式中进入正常模式

    问题: 在Hadoop中,新建一个文件夹,报错了,提示mkdir: org.apache.hadoop.hdfs.server.namenode.SafeModeException: Cannot c ...