java jframe类_Java-GUI笔记——JFrame类
1.JFrame类1.1 JFrame类在javax.swing 包中——主要提供各种组件(窗口/按钮/文本框),在Java中还提供了另外2个做GUI开发的包。java.awt 包 – 主要提供字体/布局管理器,java.awt.event 包 – 事件处理,后台功能的实现。顶层容器值得是容纳其他容器的容器组件,包括JFrame类,JWindows类,JDialog类,JApplet等。Swing
1.JFrame类
1.1 JFrame类在javax.swing 包中——主要提供各种组件(窗口/按钮/文本框),在Java中还提供了另外2个做GUI开发的包。
java.awt 包 – 主要提供字体/布局管理器,java.awt.event 包 – 事件处理,后台功能的实现。
顶层容器值得是容纳其他容器的容器组件,包括JFrame类,JWindows类,JDialog类,JApplet等。
Swing提供三个顶层容器类:JFrame,JDialog和JApplet。当使用这些容器类时,请谨记以下原则。
(1)要在屏幕上显示,每个GUI组件必须是一个“容器层级”的一部分。
(2)每个GUI组件只能属于一个容器,如果组件已经在一个容器当中,而又试图将它添加到另一个容器当中去,那么应该从第一个容器中移除该组件,然后添加到两一个容器去。
(3)各种可视化组件不直接放到顶层容器中去,而是放在容器的内容面板中。
(4)可以选择添加一个菜单栏到顶层容器中,菜单栏应该按惯例位于顶层容器中,但必须位于内容面板之外。
(5)Swing中还有一个命名为JInternalFrame的内部窗体,它模仿JFrame,但实际上内部窗体并不是真正的顶层容器。
2.JFrame类使用
packageJframe;importjavax.swing.JFrame;public class mainFrame extendsJFrame {publicmainFrame() {//创建窗口
JFrame frame = newJFrame();//设置窗口标题
this.setTitle("主窗体");//设置窗口的x,y位置,窗口大小x,y.
this.setBounds(600, 300, 500, 400);//设置窗体的大小
this.setSize(600, 600);//设置窗体的位置
this.setLocation(600, 300);//设置默认的关闭窗口
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);this.setVisible(true);
}public static voidmain(String[] args) {
mainFrame mainFrame= newmainFrame();
}
}
注意:setDefaultCloseOperation有4种方法,装在javax.swing.WindowConstants接口中。
1.DO_NOTHING_ON_CLOSE :什么都不做,直接关闭2.DISPOSE_ON_CLOSE :自动隐藏并释放窗体3.HIDE_ON_CLOSE :隐藏窗口的默认关闭4.EXIT_ON_CLOSE :退出程序的默认窗口关闭
3.窗体默认在屏幕居中打开
在mainFrame 类中创建一个居中方法
//居中方法
public voidsetFrameCenter()
{//得到屏幕大小
Dimension dimension =Toolkit.getDefaultToolkit().getScreenSize();//得到x的位置
int x = (dimension.width-this.getWidth())/2;//得到y的位置
int y = (dimension.height-this.getHeight())/2;//设置窗口位置
this.setLocation(x, y);
}
然后在构造方法中加上即可
//窗体居中
this.setFrameCenter();
4.设置窗体的背景
直接调用setBackground(Color color)方法无法设置颜色,JFrame上的contentPane默认是Color.WHITE的,创建一个contentPane,设置其颜色。
窗口结构
每一个顶级容器,都有一个隐藏的中间容器,叫做Root Pane。Root Pane 管理着Content Pane 、Menu Bar 和 其它一些容器。
在mainFrame类中创建一个成员变量为容器对象,得到JFrame上面的内容窗格,组件需要放到内容窗格的上面,内容窗格再放到 JFrame 顶层容器的上面。
//获取当前窗口的内容窗格
private Container container = this.getContentPane();
然后在构造函数中设置其颜色
//窗体背景
this.container.setBackground(new Color(234,23,33));
还有一种解决方案,为JFrame添加一个Panel或者JLabel等其他组件,设置其颜色为你想要的颜色,然后将其覆盖JFrame窗口即可。
5.代码
packageJframe;importjava.awt.Color;importjava.awt.Container;importjava.awt.Dimension;importjava.awt.Graphics;importjava.awt.Image;importjava.awt.Toolkit;importjavax.swing.ImageIcon;importjavax.swing.JFrame;importjavax.swing.JPanel;public class mainFrame extendsJFrame {//创建容器对象
private Container container = this.getContentPane();//创建ImagePanel
privateImagePanel imagePanel;publicmainFrame() {//创建窗口
JFrame frame = newJFrame();//设置窗口标题
this.setTitle("主窗体");//设置窗口的x,y位置,窗口大小x,y.
this.setBounds(600, 300, 500, 400);//设置窗体的大小
this.setSize(600, 600);//设置窗体的位置
this.setLocation(600, 300);//窗体居中
this.setFrameCenter();//窗体背景
this.container.setBackground(new Color(234,23,33));//设置默认的关闭窗口
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);this.setVisible(true);
}//居中方法
public voidsetFrameCenter()
{//得到屏幕大小
Dimension dimension =Toolkit.getDefaultToolkit().getScreenSize();//得到x的位置
int x = (dimension.width-this.getWidth())/2;//得到y的位置
int y = (dimension.height-this.getHeight())/2;//设置窗口位置
this.setLocation(x, y);
}public static voidmain(String[] args) {
mainFrame mainFrame= newmainFrame();
}
}
View Code
6.运行效果
参考文章:
更多推荐
所有评论(0)