千家信息网

TableModelExample怎么简化Swing

发表于:2025-02-03 作者:千家信息网编辑
千家信息网最后更新 2025年02月03日,本篇内容主要讲解"TableModelExample怎么简化Swing",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"TableModelExample怎么
千家信息网最后更新 2025年02月03日TableModelExample怎么简化Swing

本篇内容主要讲解"TableModelExample怎么简化Swing",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"TableModelExample怎么简化Swing"吧!

该示例的目的是指出使用 TMF 框架代替传统 TableModel 设计的主要优势所在。示例中的应用程序将在屏幕上显示多个表,并且可以添加或删除表,表中可以包含不同类型的信息( String 类型、 int 类型、 Boolean 类型和 BigDecimal 类型),而且最重要的是,其中还包含可配置的列信息,必须定期更改它们。

示例应用程序的代码从 J2X 包中分离了出来,您可以 HR 文件夹的 src 目录中找到源代码。还可以双击 build/lib 文件中编译好的 JAR 文件,通过 JRE 运行应用程序。

在示例应用程序中,有两个类可以相互交换,一个叫作 TableModelFreeExample ,另一个叫作 TableModelExample 。这两个类在应用程序中做的是同样的事,使应用程序产生的行为也相同。但是,它们的设计不同,一个使用的是 TMF 框架,另外一个则使用传统的 TableModel。您从它们身上注意到的***件事可能是 TMF 类 TableModelFreeExample ,该类由 63 行代码构成,而在传统 TableModel 版本 TableModelExample 中,它长达 285 行。

Evil HR Director 应用程序

我要使用的示例应用程序是 Evil HR Director 应用程序,它允许人力资源总监(可能很可怕,戴着眼镜)在 JTable 中查看潜在雇员的列表,然后从表中选出雇佣的人。新雇佣的员工的资料会转移到当前雇员使用的两个 JTable 中;其中一个表包含个人信息,另外一个表包含财务信息。在当前雇员表中,总监可以随意选择解雇谁。您可以在图 1 中看到该应用程序的 UI。

图 1. Evil HR Director 应用程序

为了进一步证明 TMF 框架的简单性,请看清单 6。这个清单只包含三行必需的代码,就可以创建 Evil HR Director 应用程序中包含的三个表的模型。这些代码可以在 TableModelFreeExample 中找到。

清单 1.在 Evil HR Director 应用程序中创建模型所需要的代码

TableUtilities.setViewToModel("demo/hr/resources/evil_hr_table.xml",  "Hire", hireTable, candidates);      TableUtilities.setViewToModel("demo/hr/resources/evil_hr_table.xml",  "Personal", personalTable, employees);  TableUtilities.setViewToModel("demo/hr/resources/evil_hr_table.xml",  "Financial", financialTable, employees);

为了进行比较, TableModelExample 中包含用传统 TableModel 方法为三个表格创建模型所需要的代码。请查看示例包中的代码。不过,我不想在这里列出所有代码,因为它足足有 205 行!

演示 TMF 框架的灵活性

TMF 框架的巨大优势之一,是它能更加容易地基于 JTable 的应用程序在其发布之后进行修改。为了证实这一点,让我们来看两个可能的场景,这两个场景在使用 Evil HR Director 应用程序中每天都可能出现。在每个场景中,您都会看到框架是如何让应用程序更加容易地适应不断变化的用户需求。

场景 1:公司的策略发生变化,规定在公司的应用程序中查看私人的婚姻信息是非法的。

TMF:最终用户需要从 XML 配置文件中删除 Married?married 。

传统 TableModel:开发人员必须深入研究 Java 代码,修改 getColumnName() ,让它无法返回列名"Married?";修改 getColumnCount() ,让它返回的结果比以前返回的结果少一列;修改 getValueAt() ,不让它返回 isMarried() 。然后开发人员必须重新编译 Java 代码,并重新部署应用程序。

场景 2:公司策略发生变化,公司觉得有必要在潜在雇员表中包含居住地所在的州的信息。

TMF:: 最终用户需要将 Statestate 添加到 XML 配置文件中。

传统 TableModel:开发人员必须深入研究 Java 代码,修改 getColumnName() ,添加一个叫作 "State" 新列;修改 getColumnCount() ,让它返回的列数加 1 ;修改 getValueAt() ,让它返回 getState() 。然后开发人员必须重新编译 Java 代码,并重新部署应用程序。

您可以看到,当应用程序中的表发生变化时(尤其在碰到一个总是朝令夕改的老板时,更改更加频繁),编辑 XML 文件要比重新部署整个应用程序容易得多。

使用代码

在您飞奔过去删除所有 TableModel 代码之前,我想我还得占用您一分钟解释一下 j2x.zip 文件的内容,以及您怎样才能在您自己的项目中使用它。(请记住,特定于 TMF 的代码可以在 com.ibm.j2x.swing.table 包中找到;您还会在 J2X 包中找到我在以前的文章"Go state-of-the-art with IFrame."中介绍的其他代码。)

j2x.zip 文件包含两上文件夹:

src-- 包含本文中使用的源代码。在 src 文件夹中,还有两个文件夹:一个是 HR,包含构成 Evil HR Director 应用程序的源代码;另一个是 J2X,包含 J2X 项目中使用的所有源代码。

build-- 包含 Evil HR Director 应用程序和 J2X 项目编译后的类文件。该文件夹中的 lib 文件夹则包含 HR 应用程序和 J2X 项目的 JAR 文件。

lib.zip 文件包含以下文件夹:

lib-- 包含所有的第三方 JAR 文件,运行应用程序或者任何使用 J2X 项目的项目,需要使用这些文件。在这个文件夹中,您还会找到第三方项目的许可。

docs.zip 文件包含下列文件夹:

docs-- 包含 J2X 项目的所有 JavaDoc 信息。

要在应用程序中使用 J2X 包,则需要把 CLASSPATH 指向 build/lib 文件夹中的 j2x.jar 以及 lib 文件中包含的所有三个第三方 JAR 文件。第三方包的许可条款允许您重新发布本文包含的所有包,但是如果有兴趣对这些包做些修改,请阅读许可条款。

到此,相信大家对"TableModelExample怎么简化Swing"有了更深的了解,不妨来实际操作一番吧!这里是网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

应用程序 程序 应用 文件 代码 文件夹 项目 信息 两个 传统 框架 示例 场景 类型 人员 公司 源代码 第三方 雇员 中包 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 励志视频软件开发 数据库表名安全防护 1u服务器是多少厘米 怎么打开和运行别人发的数据库 查询数据库用了多少 软件开发合同中款项怎么写 布吉网络安全存储服务器机箱 多用户商城软件开发 计算机网络技术属于什么科类 温州电脑软件开发费用 办公软件开发公司哪家口碑好 从崇阳到深圳一共有多少个服务器 已经备案的域名换服务器 服务器怎么看磁盘占用率 阿里云学生服务器很坑 威海诚信积分管理软件开发系统 贯彻落实网络安全法工作计划 网络安全演讲稿2022 网络技术刚入门学什么 安卓系统软件开发服务咨询 拓普龙工控服务器 有关校园网络安全的标语 青岛科技大学软件互联网 网络安全纳入乡镇班子会 兴业银行软件开发培训 网络安全防护责任落实情况 萌猫服务器 西方软件开发视频 朔州软件开发设计 自动注册软件开发工具
0