网络编程 | 站长之家 | 网页制作 | 图形图象 | 操作系统 | 冲浪宝典 | 软件教学 | 网络办公 | 邮件系统 | 网络安全 | 认证考试 | 系统进程
Firefox | IE | Maxthon | 迅雷 | 电驴 | BitComet | FlashGet | QQ | QQ空间 | Vista | 输入法 | Ghost | Word | Excel | wps | Powerpoint
asp | .net | php | jsp | Sql | c# | Ajax | xml | Dreamweaver | FrontPages | Javascript | css | photoshop | fireworks | Flash | Cad | Discuz!
当前位置 > 网站建设学院 > 网络编程 > Java
Tag:注入,存储过程,分页,安全,优化,xmlhttp,fso,jmail,application,session,防盗链,stream,无组件,组件,md5,乱码,缓存,加密,验证码,算法,cookies,ubb,正则表达式,水印,索引,日志,压缩,base64,url重写,上传,控件,Web.config,JDBC,函数,内存,PDF,迁移,结构,破解,编译,配置,进程,分词,IIS,Apache,Tomcat,phpmyadmin,Gzip,触发器,socket
网络编程:ASP教程,ASP.NET教程,PHP教程,JSP教程,C#教程,数据库,XML教程,Ajax,Java,Perl,Shell,VB教程,Delphi,C/C++教程,软件工程,J2EE/J2ME,移动开发
本月文章推荐
.Java调试教程--初步介绍.
.技术摘要:如何编写安全的Java代.
.Java套接字编程(下)(1).
.关于build tool的构想--从ant说起.
.好处不止一点点 编程结构--闭包.
.Java安全体系结构.
.Java开源软件六大帮派.
.测试要考虑成本、粒度和角度问题.
.使用Hibernate进行对象的关系映射.
.使用.NET自带的类实现DataGrid报.
.Java EJB容器的存取和实现.
.Struts常见异常信息和解决方法.
.Eclipse Web工具 Project 1.0 RC.
.ASM2.0字节码框架介绍.
.面向方面编程的Annotation简介.
.[webservices开发]使用XFire开发.
.Java 与 XML 结合使用的心得体会.
.Java基础-设计一个Java类所需的.
.JAVA规则开发篇.
.熟练使用J2ME在实际开发中的可选.

Swing 中设置模态窗体和启动位置

发表日期:2008-1-5


关于 Modal 窗体

    在 Swing 中只有 JDialog 可以设置为 Modal 窗体,其方法可以在构造函数(例如“JDialog(Frame owner, boolean modal)”)中传参数,也可以用 setModal(boolean b) 方法设定,

这个方法是从 Dialog 类继续的。

    在 JFrame 类中,无法通过如 JDialog 的方法设置 Modal 窗体,在 CSDN 有朋友尝试通过在 windowDeiconified() 时 requestFocus() 来模拟 Modal 窗体,代码如下:


Swing 中设置模态窗体和启动位置(图一)Swing 中设置模态窗体和启动位置(图二)public class MyModalFrame extends JFrame implements WindowListener ...{
Swing 中设置模态窗体和启动位置(图三)    private JFrame frame = null;
Swing 中设置模态窗体和启动位置(图三)    private boolean modal = false;
Swing 中设置模态窗体和启动位置(图三)    private String title = null;
Swing 中设置模态窗体和启动位置(图三)
Swing 中设置模态窗体和启动位置(图四)Swing 中设置模态窗体和启动位置(图五)    public MyModalFrame() ...{
Swing 中设置模态窗体和启动位置(图三)        this(null, false);
Swing 中设置模态窗体和启动位置(图六)    }
Swing 中设置模态窗体和启动位置(图三)
Swing 中设置模态窗体和启动位置(图四)Swing 中设置模态窗体和启动位置(图五)    public MyModalFrame(JFrame frame) ...{
Swing 中设置模态窗体和启动位置(图三)        this(frame, false);
Swing 中设置模态窗体和启动位置(图六)    }
Swing 中设置模态窗体和启动位置(图三)
Swing 中设置模态窗体和启动位置(图四)Swing 中设置模态窗体和启动位置(图五)    public MyModalFrame(JFrame frame, boolean modal) ...{
Swing 中设置模态窗体和启动位置(图三)        this(frame, modal, "");
Swing 中设置模态窗体和启动位置(图六)    }
Swing 中设置模态窗体和启动位置(图三)
Swing 中设置模态窗体和启动位置(图四)Swing 中设置模态窗体和启动位置(图五)    public MyModalFrame(JFrame frame, boolean modal, String title) ...{
Swing 中设置模态窗体和启动位置(图三)        super(title);
Swing 中设置模态窗体和启动位置(图三)        this.frame = frame;
Swing 中设置模态窗体和启动位置(图三)        this.modal = modal;
Swing 中设置模态窗体和启动位置(图三)        this.title = title;
Swing 中设置模态窗体和启动位置(图三)        this.init();
Swing 中设置模态窗体和启动位置(图六)    }
Swing 中设置模态窗体和启动位置(图三)
Swing 中设置模态窗体和启动位置(图四)Swing 中设置模态窗体和启动位置(图五)    private void init() ...{
Swing 中设置模态窗体和启动位置(图三)        if(modal)
Swing 中设置模态窗体和启动位置(图三)            frame.setEnabled(false);
Swing 中设置模态窗体和启动位置(图三)        this.addWindowListener(this);
Swing 中设置模态窗体和启动位置(图六)    }
Swing 中设置模态窗体和启动位置(图三)
Swing 中设置模态窗体和启动位置(图四)Swing 中设置模态窗体和启动位置(图五)    public void windowOpened(WindowEvent windowEvent) ...{
Swing 中设置模态窗体和启动位置(图六)    }
Swing 中设置模态窗体和启动位置(图三)
Swing 中设置模态窗体和启动位置(图四)Swing 中设置模态窗体和启动位置(图五)    public void windowClosing(WindowEvent windowEvent) ...{
Swing 中设置模态窗体和启动位置(图三)        if(modal)
Swing 中设置模态窗体和启动位置(图三)            frame.setEnabled(true);
Swing 中设置模态窗体和启动位置(图六)    }
Swing 中设置模态窗体和启动位置(图三)
Swing 中设置模态窗体和启动位置(图四)Swing 中设置模态窗体和启动位置(图五)    public void windowClosed(WindowEvent windowEvent) ...{
Swing 中设置模态窗体和启动位置(图六)    }
Swing 中设置模态窗体和启动位置(图三)
Swing 中设置模态窗体和启动位置(图四)Swing 中设置模态窗体和启动位置(图五)    public void windowIconified(WindowEvent windowEvent) ...{
Swing 中设置模态窗体和启动位置(图六)    }
Swing 中设置模态窗体和启动位置(图三)
Swing 中设置模态窗体和启动位置(图四)Swing 中设置模态窗体和启动位置(图五)    public void windowDeiconified(WindowEvent windowEvent) ...{
Swing 中设置模态窗体和启动位置(图六)    }
Swing 中设置模态窗体和启动位置(图三)
Swing 中设置模态窗体和启动位置(图四)Swing 中设置模态窗体和启动位置(图五)    public void windowActivated(WindowEvent windowEvent) ...{
Swing 中设置模态窗体和启动位置(图六)    }
Swing 中设置模态窗体和启动位置(图三)
Swing 中设置模态窗体和启动位置(图四)Swing 中设置模态窗体和启动位置(图五)    public void windowDeactivated(WindowEvent windowEvent) ...{
Swing 中设置模态窗体和启动位置(图三)        if(modal)
Swing 中设置模态窗体和启动位置(图三)            this.requestFocus();
Swing 中设置模态窗体和启动位置(图六)    }
Swing 中设置模态窗体和启动位置(图七)}

关于窗体启动位置

    有时候想要让窗体启动后在屏幕中间启动,有种比较复杂的方法:

Swing 中设置模态窗体和启动位置(图八)Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
Swing 中设置模态窗体和启动位置(图八)Dimension size = frame.getSize();
Swing 中设置模态窗体和启动位置(图八)int x = (screenSize.width - size.width) / 2;
Swing 中设置模态窗体和启动位置(图八)int y = (screenSize.height - size.height) / 2;
Swing 中设置模态窗体和启动位置(图八)frame.setLocation( x, y );

    在 Java 1.4 版之后可以用一条语句代替:

Swing 中设置模态窗体和启动位置(图八)frame.setLocationRelativeTo(null);


上一篇:JAVA基础: 响应鼠标点击事件的小程序 人气:891
下一篇:专家讲解优化Derby数据库程序性能 人气:983
浏览全部Java的内容 Dreamweaver插件下载 网页广告代码 祝你圣诞节快乐 2009年新年快乐