0 前言
Java GUI系列文章
对于新手来说可以作为
基础练手,对于从职人员来说
实属多余。。。
本文从实战一款简单编辑器出发,拆解GUI系列
知识
1 技术攻关
本编辑器采用Java AWT开发
1.1 知识准备
Java AWT (Abstract Window Toolkit) package is a library used for designing graphical user interfaces.
Java AWT(抽象窗口工具包)软件包是用于设计图形用户界面的库。
It contains classes for placing various user intractable components and graphics. However, the components of this class are platform dependent. They are heavy and rely on the OS for their functioning.
它包含用于放置各种用户难以处理的组件和图形的类。 但是,此类的组件取决于平台。 它们很重,并且依靠OS来运行。
The AWT package has classes using which we can create TextBoxes, CheckBoxes, RadioButton, List, etc.
AWT包具有一些类,通过这些类可以创建TextBoxes , CheckBoxes , RadioButton , List等。
1.1.1 AWT组件与容器
𝟭、Component类
Component类是AWT下所有图形控件的超类,如AWT下的TextComponent、CheckBox等,自定义的控件必须继承该类。
下面是Component类常用方法及说明,包括addXXListenler、removeXXListenler系列方法,setXX、getXX系列方法。
序号 | 方法 | 说明 |
---|---|---|
Ⅰ | addKeyListener | 添加指定的按键监听以接收来自该组件的按键事件。 |
Ⅱ | addFocusListener | 添加指定的焦点监听以在该组件获得输入焦点时接收来自该组件的焦点事件。 |
Ⅲ | setLocation | 将此组件移动到新位置。 |
Ⅳ | setSize | 调整此组件的大小,使其具有宽度 width 和高度 height。 |
Ⅴ | setVisible | 根据参数 b 的值显示或隐藏此组件。 |
Ⅵ | setFocusable | 将此 Component 的可聚焦状态设置为指定值。 |
Ⅶ | paint | 绘制此组件。 |
𝟮、Container类
Container类是所有容器类的超类,它继承至Component类,如JComponent,Panel,Window等,自定义的容器类必须继承该类。下面是Component类常用方法及说明,
序号 | 方法 | 说明 |
---|---|---|
Ⅰ | add | 将指定的组件附加到此容器的末尾。 |
Ⅱ | getComponent | 获取此容器中的第 n 个组件。 |
Ⅲ | setLayout | 为此容器设置布局管理器。 |
1.1.2 Java GUI开发有哪些布局方式
𝟭、使用布局管理器类LayoutManager
𝟮、使用setLocation方法
1.2 环境搭建
使用IntelliJ IDEA Community Edition 2025.1.2开发Java源码。
使用JDK 17运行环境运行程序。
1.3 配置与合作
1.3.1 人员配置
编辑器的开发涉及到菜单、文本框、按钮等基本控件的设计。
因此,最低人员配置如下:
通用底层设计人员(1名)、
编程人员(1名)、
模块开发人员(1名)
1.3.2 咨询与合作
由于开发人员有限。。。
本次开发只提供api接口的封装(详见2.3)。。。
具体的实现需要相应的编程人员提供实现(详见2.4)、
模块开发人员提供完整的界面(详见2.1)和功能(详见2.2)。。。
2 设计方案
2.1 模块设计
2.1.1 文件模块
2.1.2 编辑模块
2.1.3 语言模块
2.2 功能设计
板块 | 说明 |
---|---|
基本API | 图层布局、样式处理 |
扩展API | 事件绑定、业务处理 |
2.2.1 基本API
基本API提供图层操作和样式处理等基本功能。。。
2.2.2 扩展API
扩展API提供事件绑定、业务处理等扩展功能。。。
2.3 接口设计
板块 | 说明 |
---|---|
基础函数库 | 基本的控件描绘 |
基本类 | 图层、布局(容器)、样式类、控件类 |
2.3.1 基础函数库
基本的控件描绘。。。
2.3.2 基本类
我们需要一组跨平台的UI接口,基于这组UI接口,在不同的平台包装相应的实现。
𝟭、FLayer(图层类)
该类为抽象类
图层类是所有控件类的超类,在本编辑器的实现中包装了AWT的Component类。
𝟮、FLayoutAdapter(布局(容器)类)
布局(容器)类,该类为接口类
布局(容器)类是所有布局类和容器类的超类,在本编辑器的实现中包装了AWT的Container类和LayoutManager类。
𝟯、FCss(样式类)
样式类,该类为接口类
完成对组件的样式设置,类似于Css的功能。
2.4 逻辑设计
3 开发与维护
3.1 项目结构
3.2 进度与维护
Ⅰ、 版本一
封装实现2.3接口设计中的类
Ⅱ、版本二
实现2.2功能设计
Ⅲ、版本三
实现完整的功能和界面