Swing程序结构


图形用户界面主要是由窗口以及窗口中的组件构成的,编写Swing程序主要就是创建窗口和添加组件过 程。Swing中的窗口主要是使用JFrame。JFrame有标题、边框、菜单、大小和窗口 管理按钮等窗口要素。

构建Swing程序主要有两种方式:创建JFrame或继承JFrame。

一、创建JFrame方式

创建JFrame方式就是直接实例化JFrame对象,然后设置JFrame属性,添加窗口所需要的组件。
代码如下:

import javax.swing.*;
import java.awt.*;

/**
 * @author : 蔡政洁
 * @email :[email protected]
 * @date : 2020/2/22
 * @time : 11:36 下午
 */
public class SwingDome1 {
    public static void main(String[] args) {
//        创建窗口对象
        JFrame jFrame = new JFrame("MyFrame");
//        创建标签
        JLabel label = new JLabel("Hello Swing");
//        获得窗口的内容板面
        Container container = jFrame.getContentPane();
//        添加标签到内容板面
        container.add(label);

//        设置窗口大小
        jFrame.setSize(300,300);
        jFrame.setVisible(true);
    }
}

默认情况下JFrame是没有大小且不可见的,因此创建JFrame对象后还需要设置大小和可 见,注意 设置JFrame窗口大小和可见这两条语句,应该在添加完成所有组件之后调用。否则 在多个组件情况下,会导致有些组件没有显示。

创建步骤:创建窗口—— 获得窗口的内容面板或菜单栏—— 创建组件——将创建的组件添加到内容面板 ——设置窗口大小和组件

在Swing中添加到JFrame上的所有可见组件,除菜单栏外,全部添加到内容面板上, 而不要直接添加到JFrame上,这是Swing绘制系统所要求的。

图解JFrame的内容面板
几乎所有的图形用户界面技术,在构建界面时都采用层级结构(树形结构)
在这里插入图片描述
根是顶级容器(只能包含其他容器的容器),子容器有内容面板和菜单栏(本 例中没有菜单),然后其他的组件添加到内容面板容器中。所有的组件都有add()方法通 过,通过调用add()方法将其他组件添加到容器中,作为当前容器的子组件。

二、继承JFrame方式

继承JFrame方式就是编写一个继承JFrame的子类,在构造方法中初始化窗口,添加窗口所需要 的组件。
代码如下:

import javax.swing.*;
import java.awt.*;

/**
 * @author : 蔡政洁
 * @email :[email protected]
 * @date : 2020/2/22
 * @time : 11:45 下午
 */
public class MyFrame extends JFrame {
    public MyFrame(String title){
        super(title);
//        创建标签
        JLabel label = new JLabel("Hello World");
//        获得窗口内容板面
        Container container = getContentPane();
//        添加标签到内容板面
        container.add(label);
//        设置窗口大小
        setSize(300,300);
        setVisible(true);
    }
}
//调用代码
class HelloWorld{
    public static void main(String[] args) {
//        创建MyFrame对象
        MyFrame myFrame = new MyFrame("MyFrame");
    }
}

以上两种方式运行效果完全一样
运行结果:
在这里插入图片描述
创建JFrame方式适合于小项目,代码量少、窗口不多、组件少的情况。继承JFrame 方式,适合于大项目,可以针对不同界面自定义一个Frame类,属性可以在构造方法中进行 设置;缺点是有很多类文件需要有效地管理。

以上内容仅供参考学习,如有侵权请联系我删除!
如果这篇文章对您有帮助,左下角的大拇指就是对博主最大的鼓励。
您的鼓励就是博主最大的动力!

扫描二维码关注公众号,回复: 9406173 查看本文章
发布了69 篇原创文章 · 获赞 7 · 访问量 3313

猜你喜欢

转载自blog.csdn.net/weixin_45366499/article/details/104455372