package common;

import javax.swing.JFrame;
import javax.swing.SwingUtilities; /*2015-5-26*/
public class SwingConsole { public static void run(final JFrame frame,final int width,final int height){
SwingUtilities.invokeLater(new Runnable() { @Override
public void run() {
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setSize(width, height);
frame.setTitle(frame.getClass().getSimpleName());
frame.pack();// //该代码依据放置的组件设定窗口的大小使之正好能容纳你放置的所有组件
frame.setVisible(true);
frame.setLocationRelativeTo(null);
}
});
}
}
package dialogclose;

import java.awt.Dimension;
import java.awt.FlowLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener; import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JTextField; /*2015-6-3*/
public class JFrameDemo extends JFrame {
private static final long serialVersionUID = 1L;
private JButton button;
private JTextField result; public JFrameDemo() {
// this.setLayout(new GridLayout(4, 4));
this.setLayout(new FlowLayout());
button = new JButton("click");
getContentPane().add(button);
result = new JTextField("...");
result.setPreferredSize(new Dimension(200, 20));
getContentPane().add(result);
} public static void main(String[] args) {
final JFrameDemo frame = new JFrameDemo();
frame.button.addActionListener(new ActionListener() { @Override
public void actionPerformed(ActionEvent e) {
System.out.println("before open dialog");
JDialogController dlg = new JDialogController(frame);
frame.result.setText("Result:" + dlg.isCancel());
System.out.println("after close dialog");
if (dlg.isCancel()) {
System.out.println("is canceled");
return;
}
System.out.println(dlg.isCancel());
}
}); common.SwingConsole.run(frame, 800, 600); } }
package dialogclose;

import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent; import javax.swing.JDialog;
import javax.swing.JFrame;
import javax.swing.JOptionPane; /*2015-6-3*/
public class JDialogController { private boolean cancel = true; public JDialogController(JFrame parent) {
final JDialogDemo dlg = new JDialogDemo(parent);
dlg.setDefaultCloseOperation(JDialog.DISPOSE_ON_CLOSE);
/*dlg.addWindowListener(new WindowAdapter() { @Override
public void windowClosing(WindowEvent e) {
int result = JOptionPane.showConfirmDialog(dlg, "是否退出本系统!", "退出消息框", JOptionPane.YES_NO_OPTION, JOptionPane.QUESTION_MESSAGE);
if (result == JOptionPane.YES_OPTION)
{
System.out.println("Choose Yes");
System.exit(0);
}
else if (result == JOptionPane.NO_OPTION)
{
System.out.println("Choose No");
dlg.setVisible(true);
dlg.validate();
}
} });*/ dlg.setVisible(true);
} public boolean isCancel() {
return cancel;
}
}
package dialogclose;

import java.awt.FlowLayout;

import javax.swing.JDialog;
import javax.swing.JFrame;
import javax.swing.JTextField; /*2015-6-3*/
public class JDialogDemo extends JDialog {
private static final long serialVersionUID = 1L; private boolean cancel=true;
public JDialogDemo(JFrame parent) {
super(parent,true);
this.setLayout(new FlowLayout());
this.setSize(400, 200); this.add(new JTextField("test"));
this.setLocationRelativeTo(null);
}
public boolean isCancel() {
return cancel;
}
}

关闭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. 鼠标右键怎么清除Catalyst Control Center

    开始→运行→regedit→找到HKEY_CLASSES_ROOT\Directory\Background\shellex\ContextMenuHandlers\ACE→双击并修改其键值 可以删除 ...

  2. Android大图片导致内存问题小结

    在网上看了部分Android中OOM的问题,现在根据理解,做一下笔记. Android OOM 产生的几种原因 1. 程序中使用了太多自己创建的Bitmap. 这种情况通常是最好解决的. 因为你明白你 ...

  3. C++不支持Unicode,即使utf8

    今天,字符串unicode我们已经不需要常理的理由,但是,一些有编程语言的悠久历史.这仍然是一个头疼. 尽管第三方库支持的假设,C++事实上没有真正有效地支持unicode.即使utf8.(注意:本文 ...

  4. 定义自己的布局RelativeLayout 绘制网格线

    在Android画线必须由一个载体,无论是控制,无论是布局.实际上它们是从继承View.由画线的方式自己的控制或布局的定义是最常见的. 以下是在其定义中的小样本实现RelativeLayout绘制网络 ...

  5. leetcode第一刷_Unique Paths

    从左上到右下,仅仅能向右或向下,问一共同拥有多少种走法. 这个问题当然能够用递归和dp来做,递归的问题是非常可能会超时,dp的问题是须要额外空间. 事实上没有其它限制条件的话,这个问题有个非常easy ...

  6. CF 553A 组合DP

    http://codeforces.com/problemset/problem/553/A A. Kyoya and Colored Balls time limit per test 2 seco ...

  7. 简单的java mail发送邮件实例

    mail.jar ,commons-email-X.X.jar ,activation.jar ,log4j.jar  这四个jar,放进项目里 下载地址 http://www.oracle.com/ ...

  8. CentOS修改yum更新源

    1. 在修改前先备份该文件 cp /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.bak 2. 修改更新源配置文 ...

  9. java中线程机制

    java中线程机制,一开始我们都用的单线程.现在接触到多线程了. 多线性首先要解决的问题是:创建线程,怎么创建线程的问题: 1.线程的创建: 四种常用的实现方法 1.继承Thread. Thread是 ...

  10. Apache Phoenix JDBC 驱动和Spring JDBCTemplate的集成

    介绍:Phoenix查询引擎会将SQL查询转换为一个或多个HBase scan,并编排运行以生成标准的JDBC结果集. 直接使用HBase API.协同处理器与自己定义过滤器.对于简单查询来说,其性能 ...