Swing程序结构

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

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

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


一、创建JFrame方式


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

代码如下:

import javax.swing.*;
import java.awt.*;
/**
 * @author : 蔡政洁
 * @email :caizhengjie888@icloud.com
 * @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的内容面板

几乎所有的图形用户界面技术,在构建界面时都采用层级结构(树形结构)

23.png

根是顶级容器(只能包含其他容器的容器),子容器有内容面板和菜单栏(本 例中没有菜单),然后其他的组件添加到内容面板容器中。所有的组件都有add()方法通 过,通过调用add()方法将其他组件添加到容器中,作为当前容器的子组件。


二、继承JFrame方式


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

代码如下:

import javax.swing.*;
import java.awt.*;
/**
 * @author : 蔡政洁
 * @email :caizhengjie888@icloud.com
 * @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");
    }
}

以上两种方式运行效果完全一样

运行结果:

25.png创建JFrame方式适合于小项目,代码量少、窗口不多、组件少的情况。继承JFrame 方式,适合于大项目,可以针对不同界面自定义一个Frame类,属性可以在构造方法中进行 设置;缺点是有很多类文件需要有效地管理。


相关文章
|
6月前
|
Java
JAVA结构化程序设计
JAVA结构化程序设计
51 0
|
5月前
|
Java Windows
基于java Swing编写扫雷游戏设计实现(已调试)
基于java Swing编写扫雷游戏设计实现(已调试)
65 1
|
5月前
|
前端开发 Java UED
Java中的图形用户界面编程:Swing与JavaFX的比较与应用
Java中的图形用户界面编程:Swing与JavaFX的比较与应用
|
6月前
|
Java
Java的结构化程序设计
Java的结构化程序设计
61 0
|
Java 容器
Swing程序设计(3)JDialog窗体
Swing程序设计(3)JDialog窗体
133 0
|
6月前
|
前端开发 Java 程序员
【JAVA】<GUI编程>AWT & Swing 图形化编程库
【1月更文挑战第19天】【JAVA】<GUI编程>AWT & Swing 图形化编程库
|
6月前
|
Java
Java Swing猜英文单词游戏(java+面向对象编程+swing+awt+io流)
Java Swing猜英文单词游戏(java+面向对象编程+swing+awt+io流)
|
6月前
|
算法 Java 开发工具
Java Swing五子棋项目
Java Swing五子棋项目
|
数据可视化 Java 数据安全/隐私保护
Swing程序设计(1)概述及常用组件
Swing程序设计(1)概述及常用组件
242 0
|
数据可视化 Java 容器
Swing程序设计(2)JFrame窗体
Swing程序设计(2)JFrame窗体
141 0