JFrame、JDialog close
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的更多相关文章
- Java GUI 顶级容器JFrame、JDialog
JFrame的常用构造函数: JFrame() JFrame(String title) //窗口标题,会显示在左上角窗体图标的后面 JDialog的常用构造函数: JDialog() JDial ...
- 总结-swing、JFrame、JScrollPane、JTabbedPane、JEditorPane
总结-swing.JFrame.JButton.JScrollPane.JLabel.JTabbedPane.JEditorPane 1.JButton内边距(去掉按钮里的空白):setMargin2 ...
- JFrame、JPanel 、Layout开发的简单例子
写了Java这么久,居然发现想手写一个带网格袋布局的JFrame,还不记得怎么写,写了这么多代码真不敢说记得所有细节. 幸好,只要记清楚概念就能快速开发.首先,明确一下3种容器类的差别和用途: No. ...
- 【java】详解JFrame结构的分层
在这篇博文中,笔者会介绍JFrame窗口的分层.JFrame继承自Frame,同JFrame.JDialog.JApplet都是重量级组件.如果不弄清楚Frame的分层结构,那么在设置组件的某些特效的 ...
- JFrame 的层次结构 及 背景设置说明
感谢原文:https://blog.csdn.net/qq_32006373/article/details/49659129 一.JFrame 的层次结构 我们通过两个图来说明一下 JFrame 的 ...
- java Swing组件和事件处理
1.常见的容器 JComponent是 Container 的子类,中间容器必须添加到底层容器中才能够发挥作用, JPanel 面板 :使用jPanel 创建一个面板,再通过添加组件到该面板上面,JP ...
- Java快速入门-03-小知识汇总篇(全)
Java快速入门-03-小知识汇总篇(全) 前两篇介绍了JAVA入门的一系小知识,本篇介绍一些比较偏的,说不定什么时候会用到,有用记得 Mark 一下 快键键 常用快捷键(熟记) 快捷键 快捷键作用 ...
- swing中的分层
swing中的分层 摘自:https://blog.csdn.net/levelmini/article/details/26692205 2014年05月23日 12:42:56 阅读数:1244 ...
- java基础day05---界面
java基础day05---界面 1.GUI:图形用户界面(Graphics User Interface) 开发工具包AWT抽象窗口把工具箱===>swing 解决了awt存在的lcd问题== ...
随机推荐
- oracle 12c 中asm元数据是否有所变化
详见原文博客链接地址: oracle 12c 中asm元数据是否有所变化
- hdu4635(强连通缩点)
传送门:Strongly connected 题意:求最多可以加多少边,使得最新的图还不是强连通图. 分析:最终添加完边的图,肯定可以分成两个部X和Y,其中只有X到Y的边没有Y到X的边,那么要使得边数 ...
- android 图片水平反复平铺(repeat x)
<=用来反复显示的图 1.最简单方式 创建wave_repeat.xml <?xml version="1.0" encoding="utf-8"? ...
- 网络安全审查制度即将推出 手机App安全加密成必定趋势
年05月22日宣布,为维护国家网络安全.保障中国用户合法利益,中国即将推出网络安全审查制度,关系国家安全和公共利益的系统使用的.重要信息技术产品和服务,应通过网络安全审查.文章出处:*** 网络安全审 ...
- Gap year | 最好金龟换酒
Gap year | 最好金龟换酒 Gap year Posted on February 8, 2009 by 真 后.90后相比,说是虽然形成背景不同,但有很多特征相似,比如离经叛道,比如信仰缺失 ...
- 怎样将android studio项目导入eclipse
如今,越来越多的开源项目都是用android studio来开发的,所以源码都与eclipse有所不同. 以下是将android studio项目导入eclipse的一般步骤: 1. 先解压项目: 2 ...
- JqGrid 显示表
JqGrid 下表显示了前台图书馆.使用起来非常方便. 我在这里分享使用中遇到的问题及解决方案 ** 一.rowNum属性 ** 1.假设不设置,默认显示数是20,也就是说超过20以后的数据.不再显示 ...
- SWT中各种参数大全
1按钮组件(Button) (1)Button组件常用样式 SWT.PUSH按钮 SWT.CHECK多选按钮 SWT.RADIO单选按钮 SWT.ARROW箭头按钮 SWT.NONE默认按钮 SWT. ...
- C# webservice初探
转载请注明出处Coder的不平庸:http://blog.csdn.net/pearyangyang/article/details/46348633 因为工作的终端曾经是直接对数据库进行操作,导致每 ...
- ecshop网站建设手机版wap版出现lib.debug.php on line 303
首先我们可以看到页面中提示\includes\lib.debug.php on line 303这样的错误,那么我们首先应该找到这个文件的低303行.代码是: $pa = &new Print ...