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. Cocos2dx 3.0 过渡篇(二十六)C++11多线程std::thread的简单使用(上)

    昨天练车时有一MM与我交替着练,聊了几句话就多了起来,我对她说:"看到前面那俩教练没?老色鬼两枚!整天调戏女学员."她说:"还好啦,这毕竟是他们的乐趣所在,你不认为教练每 ...

  2. WindowsclientC/C++编程规范“建议”——前言

    前言 工作中接触了非常多编程规范.当中最有意思的是,公司近期公布了一版C/C++编程规范,然后我看到该规范的最后一段时,有这么一句:"该规范不适用于Windows平台开发".看来这 ...

  3. CentOS 7没有ifconfig命令处理

    新安装CentOS 7 64位后发现查看ip配置的时候没有ifconfig,百度后发现# yum install net-tools软件包即可.

  4. Wix学习整理(7)——在开始菜单中为HelloWorld添加卸载快捷方式

    原文:Wix学习整理(7)--在开始菜单中为HelloWorld添加卸载快捷方式 通过前面的几篇随笔,我们已经给我们的HelloWorld提供了填写注册表信息,以及开始菜单快捷方式和桌面快捷方式.这些 ...

  5. 你属于几K(千)?

    月薪2k.对出勤率负责:5k,对按时完毕率负责:8k,对质量负责:12k.对小团队的情绪负责:16k,对到款率负责:20k,要想着怎么保住自己的饭碗.40k.保住部门.100k.保住大部门:100k+ ...

  6. ACM-简单题之Least Common Multiple——hdu1019

    ***************************************转载请注明出处:http://blog.csdn.net/lttree************************** ...

  7. Learning Cocos2d-x for WP8(4)——中文显示

    原文:Learning Cocos2d-x for WP8(4)--中文显示 C#(wp7)兄弟篇Learning Cocos2d-x for XNA(4)——中文显示 Cocos2d-x中文显示,似 ...

  8. Xcode6在10.9.4上面crash解决

    具体请看我的evernote 这里: 在10.9.4系统上面直接安装xcode6的beta3.和平时一样, 1.将beta3拖拽到application文件夹中. 2.等待copy完毕,执行xcode ...

  9. 策略模式——MFC样例

    Context(应用场景): 1.须要使用ConcreteStrategy提供的算法. 2.内部维护一个Strategy的实例. 3. 负责动态设置执行时Strategy详细的实现算法. 4.负责跟S ...

  10. [置顶] ios 时间定时器 NSTimer应用demo

    原创文章,转载请注明出处:http://blog.csdn.net/donny_zhang/article/details/9251917 demo功能:ios NSTimer应用demo .ipho ...