SuperMap iDesktopX 采用Swing图形界面框架,Swing 是一个轻量级组件,采用纯 Java 实现,无需依赖于本地平台的图形界面,使得界面在所有平台的显示效果一致,同时支持跨平台显示。
Swing 组件都采用 Model-View-Controller(即模型-视图-控制器)的设计,实现 GUI 组件的显示逻辑和数据逻辑的分离,从而允许程序员自定义 Render 来改变 GUI 组件的显示外观,以提供更多的灵活性。
Swing 容器组件直接继承 AWT 类库中的容器组件类,其他大部分组件都是继承 JComponet 组件。组件可以划分为容器组件和非容器组件,容器组件包括 JFmme 和 JDialog;JComponent 定义了非容器类的轻量级组件,例如:JBntton、JPanel、JMenu 等。
Swing的类库组织结构如下图:
- Component 是 SWING 的非菜单用户界面控件的一个抽象基类。组件代表一个用图形表示的对象。
- Container 是一个组件,它可以包含其他 SWING 组件。
- JComponent 是一个所有 swing UI 组件的基类。为了使用继承自 JComponent 的一个 swing 组件,组件必须是一个包容层次结构,它的根是一个顶层的 Swing 容器。
扩展开发需构建界面时,任何组件都必须位于容器中,本章节主要介绍SuperMap iDesktopX 二次开发时常用的控件,控件如下:
- JFrame 是常用的顶层容器,可在其中添加Swing组件。
- JPanel 是常用的中间层容器,它能容纳组件并将组件组合在一起,但它本身必须添加到其他容器中使用。
- JLabel 对象是一个在容器中放置文本的组件。
- JTextField 对象是一个文本组件,它允许编辑单行文本。
- JTextArea 对象是一个文本组件,它允许编辑多行文本。
- JButton 该类创建一个有标签的的按钮。
- JRadioButton 用于实现单选按钮,只能有一个单选按钮被选中。
- JCheckBox 用于实现复选框,复选框有选中和未选中两种状态。
- JComboBox 组件用于实现下拉选项。
- JList 组件用于表示列表框。
- JTree 组件用于实现树空间,明确数据的层次关系。
- JToolBar 组件用于实现工具栏,可以把任意类型的组件附加到工具条上。