JFrame
用途
创建一个窗口,分别拥有标题、最大化按钮,最小化按钮和关闭按钮。
构造方法
JFrame(); 创建一个初始不可见的无标题的窗口;
JFrame(GraphicsConfiguration gc); 以屏幕设备指定的GraphicsConfiguration和空白标题制定一个JFrame;
JFrame(String title); 创建一个有标题的初始不可见的窗口;
JFrame(String title, GraphicsConfigurationgc);创建一个具有指定标题和指定屏幕设备GraphicsConfiguration的JFrame;
创建
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对象的setLocation(int x, int y)方法,设置JFrame窗口在显示器中的起始绘制点,典型代码如下:
frame.setLocation((displaySize.width -frameSize.width) / 2,(displaySize.height - frameSize.height) / 2);
利用JFrame创建的窗口默认是不可见的,即在运行时不在显示器上绘制窗口,设置为可见的方法是通过JFrame对象的setVisible(boolean 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();
}