Java GUI编程3---基本容器:JFrame

本文介绍了如何使用Swing中的JFrame创建窗口,并演示了如何设置窗口的大小、位置及背景颜色等基本属性。此外,还展示了如何使用Dimension和Point类来更灵活地配置窗口。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

如果要使用Swing创建一个窗口,则直接使用JFrame即可。JFrame是Component的子类,常用的方法如下表所示:

序号方法描述
1public JFrame() throws HeadlessException构造一个普通的窗体对象
2public JFrame(Sting title) throws HeadlessException创建一个窗体对象,标题为title
3public void setSize(int width,int heigth)设置窗体宽度,高度
4public void setSize(Dimension d)通过Dimension对象来设置窗体的宽度和高度
5public void setBackground(Color c)设置窗体的背景颜色
6public void setLocation(int x,int y)设置组件的显示位置
7public void setLocation(Point p)通过Point对象来设置窗体的显示位置
8public void setVisible(boolean b)b真则显示组件,假则不显示组件
9public Component add(Component comp)向容器中添加组件
10public void setLayout(LayoutManager mgr)设置布局管理器,如果设置为null表示不使用
11public void pack()调整窗口大小,以适合其子组件的首先大小和布局
12public Container getContainer()返回子窗体的容器对象

实例1:创建一个窗体

package java1.awt.test;
import javax.swing.JFrame ;
import java.awt.Color ;
public class JFrameDemo01{
        public static void main(String args[]){
                JFrame f = new JFrame("第一个Swing窗体") ;
                f.setSize(400,200) ;           // 设置组件的大小:宽度400,高度200
                f.setBackground(Color.BLUE) ;  // 将背景设置成蓝色
                f.setLocation(500,100) ;       // 设置组件的在屏幕中的显示位置:距离屏幕左边500,距离屏幕上边100
                f.setVisible(true) ;           // 让组件可见
        }
};

运行结果:
这里写图片描述
以上程序运行之后,会直接显示一个窗体。在上述代码中最重要的就是setVisible(true),如果没有这句话,窗体则不会显示,这是因为创建的创建的窗体默认是不可见的。
虽然现在窗体上有关闭按钮,但是此时按钮无法让程序退出。关闭窗体后此时eclipse中仍然可以看到小红点在亮着,说明程序还没退出,需要在eclipse中手动关闭,如下图所示。
这里写图片描述
之所以点击窗体上面的关闭按钮,程序还没有退出是因为在Swing程序中,要想让窗口的关闭按钮起作用,则必须编写相关的事件进行处理。

在JFrame中也可以使用Dimension类设置窗体的大小,此类封装的是组件的宽度和高度。Dimension类的常用操作方法如下表所示。

序号方法描述
1public Dimension()创建一个Dimension类实例
2Public setSize(double width,double height)设置显示的宽度和高度
3public setSize(int width,int height)设置显示的宽度和高度
4public double getWidth()返回组件的宽度
5public double getHeight()返回组件的高度

除了设置组件大小可以使用Dimension外,对于组件的显示位置也可以存在一个Point类,此类封装的是显示位置的x,y坐标。Point类常用操作方法如下表所示:

序号方法描述
1public Point()在坐标原点创建对象
2public Point(int x,int y)在(x,y)坐标创建对象
3public void setLocation(double x,double y)设置x,y坐标
4public void setLocation(int x,int y)设置x,y坐标
5public void move(int x,int y)将此组件移动到指定的坐标位置,与setLocation(int,int)方法相同
6public void translate(int dx,int dy)沿着x轴平移dx,沿着y轴平移dy,移动后得到点:(x+dx,y+dy)

实例:使用Dimension和Point类设置组件大小和显示位置

package java1.awt.test;
import javax.swing.JButton;
import javax.swing.JFrame ;
import javax.swing.JPanel;
import java.awt.Color ;
import java.awt.Dimension ;
import java.awt.Point ;
public class JFrameDemo02{
    public static void main(String args[]){
        JFrame f = new JFrame("第一个Swing窗体") ; //创建一个窗体
        Dimension d = new Dimension() ;
        d.setSize(400,200) ;
        f.setSize(d) ;                  // 设置组件的大小
        f.setBackground(Color.RED) ;    // 将背景设置成白色
        Point p = new Point(300,200) ;  // 指定组件的显示位置
        JPanel jPanel=new JPanel();
        JButton button1=new JButton("按钮1");
        JButton button2=new JButton("按钮2");
        JButton button3=new JButton("按钮3");
        jPanel.add(button1);//添加一个按钮
        jPanel.add(button2);
        jPanel.add(button3);
        f.add(jPanel);
//      f.pack();//以窗体中组件的大小来显示窗口
        f.setLocation(p) ;              // 设置组件的显示位置
        f.setVisible(true) ;            // 让组件可见
    }
};

程序运行结果:
这里写图片描述

总结:

JFrame就是一个容器,在该容器上可以安装多个组件。

问答部分:

问:为什么在实例化Frame对象是不用异常处理?
Frame类的构造方法上使用了throws关键字抛出异常,为什么在此时的程序中却没有使用try…catch语句来进行异常处理呢。
答:
Java中只要是RuntimeException类型的异常,可以不用try…catch处理。这里HeadlessException是RuntimeException类型的,所以在上面的两个实例中不需要进行异常处理。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值