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. Java并发专题 带返回结果的批量任务运行 CompletionService ExecutorService.invokeAll

    转载请标明出处:http://blog.csdn.net/lmj623565791/article/details/27250059 普通情况下,我们使用Runnable作为主要的任务表示形式,可是R ...

  2. 该项目的建设maven片:4.协调和依赖,spring依赖注入demo

    源码下载 协调 <groupId>com.demo.animal</groupId> <artifactId>animal-core</artifactId& ...

  3. hdu4341(分组背包)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4341 题意:一个人在原点(0,0)抓金子,每块金子有一个获得需要的时间t和价值v.而且有的金子可能在一 ...

  4. CCLuaObjcBridge调Objective-C方法传索引数组报invalid key to &#39;next&#39;错调试

    CCLuaObjcBridge是cocos2d-x系列引擎与Objective-C进行交互的"桥梁",老廖的quick-cocos2d-x在其framework进行了简单了封装,封 ...

  5. SqlServer操作远程数据库

    exec sp_addlinkedserver 'srv2','','mssql2008','服务器IP' exec sp_addlinkedsrvlogin 'srv2','false',null, ...

  6. UpdatePanel Repeater内LinkButton造成页面刷新问题

    本意:UpdatePanel1内嵌的Repeater1中带有LinkButton1, 将由LinkButton1触发页面的UpdatePanel2更新,而不需要更新UpdatePanel1,当然也不需 ...

  7. ZooKeeper场景实践:(2)集中式配置管理

    1. 基本介绍 在分布式的环境中,可能会有多个对等的程序读取相同的配置文件,程序能够部署在多台机器上,假设配置採用文件的话,则须要为部署该程序的机器也部署一个配置文件,一旦要改动配置的时候就会很麻烦, ...

  8. Java的图片处理工具类

    import Java.awt.AlphaComposite; import java.awt.Color; import java.awt.Font; import java.awt.Graphic ...

  9. Android开发之按键、触摸屏和手势输入专业压力測试方法

    按键输入.触摸屏输入和手势笔画输入等功能是Android开发的基本功能.其稳定性和健壮性对移动应用系统开发很重要.按键.触摸屏和手势输入专业压力測试方法能够使用Monkey,相应用程序进行压力測试,检 ...

  10. 辛星分析html中间name和id 差额

    朋友们可以新手也能很容易区分id和class,但不一定很容易区分id和name,以下说一下二者的差别和联系. 首先是联系,它们都能够用来标记一个元素,并且能够用JavaScript来操作,可是操作方法 ...