JFrame

JFrame

用途

创建一个窗口,分别拥有标题、最大化按钮,最小化按钮和关闭按钮。

 

构造方法

JFrame();                           创建一个初始不可见的无标题的窗口;

JFrame(GraphicsConfiguration gc);      以屏幕设备指定的GraphicsConfiguration和空白标题制定一个JFrame;

JFrame(String title);                   创建一个有标题的初始不可见的窗口;

JFrame(String title, GraphicsConfigurationgc);创建一个具有指定标题和指定屏幕设备GraphicsConfigurationJFrame;

 

 

创建

JFrame myJFrame = newJFrame();

 

 

常用方法

setExtendedState(JFrame.MAXIMIZED_BOTH);//界面显示最大化

setUndecorated(true); // 去掉窗口的装饰,删除标题栏
getRootPane().setWindowDecorationStyle(JRootPane.NONE);//采用指定的窗口装饰风格

getRootPane().setWindowDecorationStyle()方法为窗口指定以下的装饰风格:

NONE                                      无装饰(即去掉标题栏)
FRAME                                     普通窗口风格
PLAIN_DIALOG                        简单对话框风格
INFORMATION_DIALOG           信息对话框风格
ERROR_DIALOG                       错误对话框风格
COLOR_CHOOSER_DIALOG     拾色器对话框风格
FILE_CHOOSER_DIALOG         文件选择对话框风格
QUESTION_DIALOG                 问题对话框风格
WARNING_DIALOG                  警告对话框风格

setMinimumSize(new   Dimension(500,400));//设置窗口最小的界面

setMaximumSize(new   Dimension(500,400));//设置窗口最大的界面

setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE);//设置关闭按钮事件

setIconImage(Toolkit.getDefaultToolkit().createImage("pic.jpg"));//设置标题栏上左上角的图标

* get/setTitle(char s):获取/设置帧的标题,将s设置为窗口标题。

* get/setState():获取/设置帧的最小化、最大化等状态。

* is/setVisible(boolean b):获取/设置帧的可视状态,换句话说,是否在屏幕上显示,默认为不可见。

* get/setLocation(int a,intb):获取/设置帧在屏幕上应当出现的位置。

*get/setSize(int width,intheight):获取/设置帧的大小。

*JFrame.setResizable(false/true):设置窗口的大小是否可被改变。

*setDefaultCloseOperation(intoperation);设单击关闭图标后的响应,operation可取下值

DO_NOTHING_ON_CLOSE 什么也不做

HIDE_ON_CLOSE 隐藏当前窗口

DISPOSE_ON_CLOSE 隐藏当前窗口,并彩旗窗体占有的其他资源

EXIT_ON_CLOSE 结束窗体所在应用程序

* add():将组件添加到帧中。

 

 

注意点

设置单击关闭按钮时执行动作的典型代码如下:
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE)
JFrame窗口的默认显示位置为从(0,0)点开始绘制,即从显示器的左上角开始绘制。通常情况下更希望显示在显示器的中央,可以通过Toolkit类的静态方法getDefaultToolkit()获得一个Toolkit类的对象,然后通过Toolkit对象的getScreenSize()方法获得一个Dimension类的对象,通过Dimension对象可以得到显示器的大小,例如显示器的宽度和高度,获得Dimension对象的典型代码如下:
Dimension displaySize =Toolkit.getDefaultToolkit().getScreenSize();
通过JFrame对象的getSize()方法也可以得到一个Dimension类的对象,通过Dimension对象可以得到JFrame窗口的大小,例如JFrame窗口的宽度和高度,获得Dimension对象的典型代码如下:
Dimension frameSize = frame.getSize();
利用上面得到的两个Dimension类的对象,就可以计算出显示在显示器中央时的起始绘制点了,然后通过JFrame对象的setLocationint x, int y)方法,设置JFrame窗口在显示器中的起始绘制点,典型代码如下:
frame.setLocation((displaySize.width -frameSize.width) / 2,(displaySize.height - frameSize.height) / 2);
利用JFrame创建的窗口默认是不可见的,即在运行时不在显示器上绘制窗口,设置为可见的方法是通过JFrame对象的setVisibleboolean b)方法,并将入口参数设为true,典型代码如下:
frame.setVisible(true)

 

 

 

使用示例


JFrame frame = new JFrame("利用JFrame创建窗口");// 创建指定标题的JFrame窗口对象
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);// 关闭按钮的动作为退出窗口
frame.setSize(400, 300);                          // 设置窗口大小
Dimension displaySize =Toolkit.getDefaultToolkit().getScreenSize(); // 获得显示器大小对象
Dimension frameSize = frame.getSize();             // 获得窗口大小对象
if (frameSize.width > displaySize.width)
frameSize.width = displaySize.width;          //
窗口的宽度不能大于显示器的宽度
if (frameSize.height > displaySize.height)
frameSize.height = displaySize.height;         //
窗口的高度不能大于显示器的高度
frame.setLocation((displaySize.width -frameSize.width) / 2,
(displaySize.height - frameSize.height) / 2); //
设置窗口居中显示器显示
frame.setVisible(true);                          // 设置窗口为可见的,默认为不可见
}

 

 

// 设置界面风格(设置在main方法下面)

        try {

            UIManager

                    .setLookAndFeel("com.sun.java.swing.plaf.nimbus.NimbusLookAndFeel");

        } catch (ClassNotFoundException e1) {

            e1.printStackTrace();

        } catch (InstantiationException e1) {

            e1.printStackTrace();

        } catch (IllegalAccessException e1) {

            e1.printStackTrace();

        } catch (UnsupportedLookAndFeelException e1) {

            e1.printStackTrace();

        }

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值