精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

TableModelExample可以簡化Swing

開發(fā) 后端
本文介紹TableModelExample可以簡化Swing,該示例的目的是指出使用 TMF 框架代替?zhèn)鹘y(tǒng) TableModel 設(shè)計的主要優(yōu)勢所在。

每篇關(guān)于 GUI 編程的文章都需要一個示例,本文當(dāng)然也不例外。該示例的目的是指出使用 TMF 框架代替?zhèn)鹘y(tǒng) TableModel 設(shè)計的主要優(yōu)勢所在。示例中的應(yīng)用程序?qū)⒃谄聊簧巷@示多個表,并且可以添加或刪除表,表中可以包含不同類型的信息( String 類型、 int 類型、 Boolean 類型和 BigDecimal 類型),而且最重要的是,其中還包含可配置的列信息,必須定期更改它們。

示例應(yīng)用程序的代碼從 J2X 包中分離了出來,您可以 HR 文件夾的 src 目錄中找到源代碼。還可以雙擊 build/lib 文件中編譯好的 JAR 文件,通過 JRE 運行應(yīng)用程序。

在示例應(yīng)用程序中,有兩個類可以相互交換,一個叫作 TableModelFreeExample ,另一個叫作 TableModelExample 。這兩個類在應(yīng)用程序中做的是同樣的事,使應(yīng)用程序產(chǎn)生的行為也相同。但是,它們的設(shè)計不同,一個使用的是 TMF 框架,另外一個則使用傳統(tǒng)的 TableModel。您從它們身上注意到的***件事可能是 TMF 類 TableModelFreeExample ,該類由 63 行代碼構(gòu)成,而在傳統(tǒng) TableModel 版本 TableModelExample 中,它長達 285 行。

Evil HR Director 應(yīng)用程序

我要使用的示例應(yīng)用程序是 Evil HR Director 應(yīng)用程序,它允許人力資源總監(jiān)(可能很可怕,戴著眼鏡)在 JTable 中查看潛在雇員的列表,然后從表中選出雇傭的人。新雇傭的員工的資料會轉(zhuǎn)移到當(dāng)前雇員使用的兩個 JTable 中;其中一個表包含個人信息,另外一個表包含財務(wù)信息。在當(dāng)前雇員表中,總監(jiān)可以隨意選擇解雇誰。您可以在圖 1 中看到該應(yīng)用程序的 UI。

圖 1. Evil HR Director 應(yīng)用程序

為了進一步證明 TMF 框架的簡單性,請看清單 6。這個清單只包含三行必需的代碼,就可以創(chuàng)建 Evil HR Director 應(yīng)用程序中包含的三個表的模型。這些代碼可以在 TableModelFreeExample 中找到。

清單 1.在 Evil HR Director 應(yīng)用程序中創(chuàng)建模型所需要的代碼

  1. TableUtilities.setViewToModel("demo/hr/resources/evil_hr_table.xml",  
  2. "Hire", hireTable, candidates);      
  3. TableUtilities.setViewToModel("demo/hr/resources/evil_hr_table.xml",  
  4. "Personal", personalTable, employees);  
  5. TableUtilities.setViewToModel("demo/hr/resources/evil_hr_table.xml",  
  6. "Financial", financialTable, employees); 

為了進行比較, TableModelExample 中包含用傳統(tǒng) TableModel 方法為三個表格創(chuàng)建模型所需要的代碼。請查看示例包中的代碼。不過,我不想在這里列出所有代碼,因為它足足有 205 行!

演示 TMF 框架的靈活性

TMF 框架的巨大優(yōu)勢之一,是它能更加容易地基于 JTable 的應(yīng)用程序在其發(fā)布之后進行修改。為了證實這一點,讓我們來看兩個可能的場景,這兩個場景在使用 Evil HR Director 應(yīng)用程序中每天都可能出現(xiàn)。在每個場景中,您都會看到框架是如何讓應(yīng)用程序更加容易地適應(yīng)不斷變化的用戶需求。

場景 1:公司的策略發(fā)生變化,規(guī)定在公司的應(yīng)用程序中查看私人的婚姻信息是非法的。

TMF:最終用戶需要從 XML 配置文件中刪除 Married?married 。

傳統(tǒng) TableModel:開發(fā)人員必須深入研究 Java 代碼,修改 getColumnName() ,讓它無法返回列名“Married?”;修改 getColumnCount() ,讓它返回的結(jié)果比以前返回的結(jié)果少一列;修改 getValueAt() ,不讓它返回 isMarried() 。然后開發(fā)人員必須重新編譯 Java 代碼,并重新部署應(yīng)用程序。

場景 2:公司策略發(fā)生變化,公司覺得有必要在潛在雇員表中包含居住地所在的州的信息。

TMF:: 最終用戶需要將 Statestate 添加到 XML 配置文件中。

傳統(tǒng) TableModel:開發(fā)人員必須深入研究 Java 代碼,修改 getColumnName() ,添加一個叫作 “State” 新列;修改 getColumnCount() ,讓它返回的列數(shù)加 1 ;修改 getValueAt() ,讓它返回 getState() 。然后開發(fā)人員必須重新編譯 Java 代碼,并重新部署應(yīng)用程序。

您可以看到,當(dāng)應(yīng)用程序中的表發(fā)生變化時(尤其在碰到一個總是朝令夕改的老板時,更改更加頻繁),編輯 XML 文件要比重新部署整個應(yīng)用程序容易得多。

使用代碼

在您飛奔過去刪除所有 TableModel 代碼之前,我想我還得占用您一分鐘解釋一下 j2x.zip 文件的內(nèi)容,以及您怎樣才能在您自己的項目中使用它。(請記住,特定于 TMF 的代碼可以在 com.ibm.j2x.swing.table 包中找到;您還會在 J2X 包中找到我在以前的文章“Go state-of-the-art with IFrame.”中介紹的其他代碼。)

j2x.zip 文件包含兩上文件夾:

src—— 包含本文中使用的源代碼。在 src 文件夾中,還有兩個文件夾:一個是 HR,包含構(gòu)成 Evil HR Director 應(yīng)用程序的源代碼;另一個是 J2X,包含 J2X 項目中使用的所有源代碼。

build—— 包含 Evil HR Director 應(yīng)用程序和 J2X 項目編譯后的類文件。該文件夾中的 lib 文件夾則包含 HR 應(yīng)用程序和 J2X 項目的 JAR 文件。

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

lib—— 包含所有的第三方 JAR 文件,運行應(yīng)用程序或者任何使用 J2X 項目的項目,需要使用這些文件。在這個文件夾中,您還會找到第三方項目的許可。

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

docs—— 包含 J2X 項目的所有 JavaDoc 信息。

要在應(yīng)用程序中使用 J2X 包,則需要把 CLASSPATH 指向 build/lib 文件夾中的 j2x.jar 以及 lib 文件中包含的所有三個第三方 JAR 文件。第三方包的許可條款允許您重新發(fā)布本文包含的所有包,但是如果有興趣對這些包做些修改,請閱讀許可條款。

結(jié)束語

使用 TableModel Free 框架,就不用再編寫傳統(tǒng) TableModel 了。TMF 框架改進了 JTable 和 TableModel 模型之間的 MVC 關(guān)系,更清楚地分離了它們。在日后的發(fā)布中,您甚至可以在不修改任何模型代碼的情況下,對組件進行熱交換。框架還允許您在模型發(fā)生變化時,自動更新視圖,從而消除傳統(tǒng) TableModel 設(shè)計中所必需的視圖和模型之間的通信。

TMF 框架還會極大地減少開發(fā) GUI 所需的時間,特別是在處理 JTable 時。幾年以前,我處理的一個應(yīng)用程序中有 150 多個 JTable,每個表都來自同一個原始表模型,該應(yīng)用程序可以作為示例。使用 TMF 框架,我們只用 150 行代碼就能解決問題;但是不幸的是,當(dāng)時還沒有 TMF,所以我們***編寫了 15,000 行額外的代碼,才生成必需的表模型。這不但增加了開發(fā)時間,還增加了測試和調(diào)試的時間。

與使用傳統(tǒng) TableModel 相比,使用 TMF 框架使您到了一個更加容易配置所有 JTable 的時代。請想像這樣一個 POS 應(yīng)用程序:該應(yīng)用程序被銷售給了 5 個不同的客戶,每個客戶都有一套特定的信息,所以每個用戶都想有一組顯示在 GUI 上的特定的列。如果沒有 TMF 框架,您就必須為每個客戶都生成一組特定的 TableModel —— 由此,也就生成了一組特定的應(yīng)用程序。而使用可配置的 XML 文件,每個客戶都可以使用相同的應(yīng)用程序,客戶所在地的業(yè)務(wù)分析師可以根據(jù)需要修改 XML 文件。請想像一下,這節(jié)約了多少開發(fā)和支持成本!

TableModel Free 框架解決了 Swing 開發(fā)人員社區(qū)的特定需求:減少了處理 JTable 時的開發(fā)時間和維護開銷,提高了它們對終端用戶的易用性。Swing 桌面正在回歸,使用像 TMF 框架這樣的工具,開發(fā)人員會發(fā)現(xiàn)可以更容易地使用 Swing 和開發(fā) GUI 應(yīng)用程序。您要做的***步就是用 TMF 框架的一行代碼代替您所有的 TableModel,把所有 TableModel 都永遠(yuǎn)地拋到虛擬空間的黑洞中去吧。

【編輯推薦】

  1. Swing組件相關(guān)的操作
  2. TikeSwing創(chuàng)建MVC體系結(jié)構(gòu)
  3. 全面介紹Swing容器
  4. 淺析Accelerator key in Java Swing
  5. JFC和Swing中的JLabel組件
責(zé)任編輯:佚名 來源: IT168
相關(guān)推薦

2009-07-15 09:06:07

BeanTableMoSwing

2009-07-14 09:28:26

JTable和TablSwing

2009-06-29 15:28:00

TableModelSwing開發(fā)

2009-07-10 09:58:08

Swing控件聽覺反饋

2009-07-15 14:10:26

Swing控件

2012-01-17 14:37:05

JavaSwing

2010-05-27 12:30:52

MySQL工具

2022-09-23 15:10:52

區(qū)塊鏈商業(yè)伙伴去中心化

2022-02-23 12:27:56

超融合基礎(chǔ)設(shè)施IT管理

2010-06-02 10:00:25

MySQL工具

2009-07-15 15:35:59

Swing程序Swing性能

2009-07-16 08:53:03

Swing任務(wù)Swing線程

2020-12-08 13:25:06

大數(shù)據(jù)數(shù)據(jù)源

2021-11-17 16:24:23

JS 代碼函數(shù)聲明

2020-12-07 10:56:20

大數(shù)據(jù)源大數(shù)據(jù)數(shù)據(jù)源

2009-07-16 16:01:55

EventQueue

2011-04-12 10:04:01

OPLCFTTH

2009-07-10 10:37:50

Swing Set示例

2009-07-15 14:29:24

構(gòu)造JListSwing
點贊
收藏

51CTO技術(shù)棧公眾號

亚洲精品66| 老司机午夜福利视频| 精品理论电影| 91精品国产色综合久久ai换脸| 无码人妻aⅴ一区二区三区日本| 亚洲第一第二区| 蜜桃视频一区| 欧美成人亚洲成人日韩成人| 亚洲国产无码精品| 祥仔av免费一区二区三区四区| 亚洲自拍偷拍综合| 牛人盗摄一区二区三区视频| 一区二区三区精| 在线亚洲观看| 久久av在线播放| 婷婷色一区二区三区| 日韩一区免费| 欧美日韩一区在线观看| 99在线免费视频观看| 第九色区av在线| 成人免费av网站| 国产欧美日韩丝袜精品一区| 日韩免费观看一区二区| 欧美国产美女| 亚洲人成77777在线观看网| 性生活一级大片| 视频精品导航| 欧美日韩在线看| 国产一区二区片| 麻豆传媒视频在线观看| 91麻豆福利精品推荐| 亚洲qvod图片区电影| 亚洲精品一区二三区| 99热免费精品在线观看| 久久国产精品偷| 精品手机在线视频| 国产午夜一区| 亚洲精品视频网上网址在线观看| 毛毛毛毛毛毛毛片123| 欧美高清免费| 欧美性猛交xxxx乱大交退制版| 久久久999视频| 国产丝袜精品丝袜| 亚洲精品精品亚洲| 中文字幕第一页亚洲| 婷婷在线视频观看| 欧美韩日一区二区三区四区| 免费亚洲一区二区| 四虎在线免费观看| 91天堂素人约啪| 国产综合第一页| 人妻无码一区二区三区久久99 | 精品国内自产拍在线观看| 欧美图片第一页| 蜜桃视频欧美| 亚洲一二在线观看| 免费人成又黄又爽又色| 欧美日韩播放| 伊人青青综合网站| 国产又粗又猛又爽又黄的视频四季| 亚洲区小说区图片区qvod| 亚洲精品99久久久久| 久久人妻一区二区| 亚洲免费成人av在线| 亚洲免费电影在线观看| 亚洲av无码一区二区三区人| 深爱激情综合| 在线观看视频99| 极品尤物一区二区| 91精品久久久久久久久久不卡| 精品国产一区二区三区久久狼黑人 | 国产精品综合在线视频| 91色视频在线观看| www.国产精品视频| av高清久久久| 欧美一区1区三区3区公司| 国产女主播在线直播| 国产精品久久久99| 无码人妻少妇伦在线电影| wwww亚洲| 在线影院国内精品| 午夜国产福利在线观看| 在这里有精品| 亚洲欧美日本精品| 天堂网avav| 99精品国产在热久久下载| 国产97色在线| 国产精品系列视频| 成人av综合一区| 欧美一区观看| 在线观看操人| 一本大道久久a久久综合| 成人性生交免费看| 国语一区二区三区| 自拍亚洲一区欧美另类| 久久9999久久免费精品国产| 老妇喷水一区二区三区| 亚洲综合自拍一区| 欧洲毛片在线| 亚洲天堂久久久久久久| 18岁网站在线观看| 只有精品亚洲| 日韩av有码在线| 九九这里只有精品视频| 国产一级久久| 1卡2卡3卡精品视频| 狠狠色伊人亚洲综合网站l| 亚洲乱码精品一二三四区日韩在线| 99精品人妻少妇一区二区| 日韩专区视频| 亚洲欧美国产高清va在线播| 一区二区国产精品精华液| 亚久久调教视频| www.av一区视频| 成人免费黄色网页| 天天影视色香欲综合网老头| 久久精品视频在线观看免费| 国产乱码精品一区二区三区四区| 欧美激情性做爰免费视频| 亚洲一级av毛片| 99re成人精品视频| 996这里只有精品| 国产精品诱惑| 亚洲人成电影网站色xx| 日本少妇bbwbbw精品| 激情综合五月天| 日韩精品一区二区三区四区五区 | 亚洲视频免费看| 国产免费一区二区三区视频| 中文字幕久久精品一区二区| 日韩在线观看成人| 久久这里只有精品9| 91在线视频免费91| 国产亚洲黄色片| 亚洲大奶少妇| 美女黄色丝袜一区| 亚洲综合一区中| 国产午夜精品一区二区三区视频| 国产精品久久中文字幕| 99亚洲乱人伦aⅴ精品| 粗暴蹂躏中文一区二区三区| 97免费观看视频| 国产精品网曝门| 91网址在线播放| 视频一区中文| 国产www精品| 毛片免费在线| 在线亚洲免费视频| 久久亚洲无码视频| 蜜臀av性久久久久蜜臀av麻豆| 日本午夜精品电影| 羞羞影院欧美| 在线观看日韩欧美| 国产又粗又黄视频| 日韩毛片在线免费观看| 成人性生交视频免费观看| 99久久夜色精品国产亚洲狼| 成人午夜黄色影院| h片在线免费| 欧美本精品男人aⅴ天堂| 欧美精品久久久久性色| 风流少妇一区二区| 成 年 人 黄 色 大 片大 全| 秋霞在线一区| 国产成人一区二区| 97超碰国产一区二区三区| 欧美日韩精品免费| 老熟妻内射精品一区| 国产成人精品亚洲777人妖 | 日韩精品免费专区| 亚洲精品自在在线观看| www.91精品| 欧美激情在线观看| 免费播放片a高清在线观看| 欧洲色大大久久| 2025国产精品自拍| 99久久99久久免费精品蜜臀| 久久精品视频91| 国产精品久久观看| 国产日韩欧美精品| 欧美中文字幕精在线不卡| 最新中文字幕亚洲| 成人毛片在线精品国产| 色综合久久久久久久久| 蜜桃av免费观看| 风间由美一区二区三区在线观看| 日韩中文字幕三区| 日韩av有码| 成人免费视频视频在| 竹内纱里奈兽皇系列在线观看| 最近2019中文字幕一页二页| 黄色成人一级片| 欧美午夜精品一区二区三区 | 久久久久国产精品嫩草影院| 在线观看亚洲成人| 国产真实乱偷精品视频| 日本一区二区免费在线| 国产国语老龄妇女a片| 视频在线观看一区| 国产传媒久久久| 日本不卡电影| 精品九九九九| 亚洲国产伊人| 日韩av免费在线| 人人澡人人添人人爽一区二区| 亚洲天堂久久av| 亚洲av综合色区无码一二三区| 91福利社在线观看| 青青在线免费观看视频| xxxx 国产| 久久香蕉国产线看观看99| 久久aaaa片一区二区| 久久久久久穴| 精品人妻少妇一区二区| 欧美成人直播| 日本一区网站| 啪啪国产精品| 99热最新在线| 国产精品日韩精品在线播放| 国产成人小视频在线观看| av电影在线地址| 久久亚洲精品视频| 成人在线观看黄色| 亚洲精品一区久久久久久| 亚洲精品久久久久久动漫器材一区| 欧美日韩综合在线免费观看| 五月天综合激情网| 婷婷丁香久久五月婷婷| 五月婷婷一区二区| 中文字幕在线不卡一区二区三区| 精品人妻无码一区| 91蜜桃传媒精品久久久一区二区| 国偷自产av一区二区三区麻豆| 经典一区二区三区| 久久国产精品国产精品| 日韩电影网1区2区| 国产精品涩涩涩视频网站| 国产精品一页| 99精品人妻少妇一区二区| 亚洲美女一区| 极品粉嫩国产18尤物| 午夜久久福利| 国产91视频一区| 欧美日韩免费| 日韩成人手机在线| 欧美激情1区| 欧美黄网在线观看| 国内精品99| 国产亚洲黄色片| 亚洲精品九九| 国产91xxx| 国产亚洲欧洲| 国产一区亚洲二区三区| 新67194成人永久网站| 亚洲色成人一区二区三区小说| 国产情侣久久| 激情婷婷综合网| 日韩av中文在线观看| 午夜欧美福利视频| 久久国内精品视频| 思思久久精品视频| 国产精品一区在线观看你懂的| 久久无码人妻一区二区三区| 成人午夜电影久久影院| 麻豆国产精品一区| 久久久久久久久伊人| 91狠狠综合久久久久久| 亚洲欧洲三级电影| 青娱乐免费在线视频| 日韩久久一区二区| 久久久综合久久| 婷婷国产在线综合| 天堂av免费在线观看| 欧美一区二区三区的| 刘玥91精选国产在线观看| 精品无码久久久久久国产| 狠狠色伊人亚洲综合网站l| xxxxxxxxx欧美| 国产精品偷拍| 国产精品v片在线观看不卡| 日韩亚洲国产免费| 国产原创精品| 成人女性视频| 欧美无砖专区免费| 久久深夜福利| a级大片免费看| 久久亚洲综合色一区二区三区| 人妻无码一区二区三区免费| 亚洲黄色小视频| 人人爽人人爽人人片av| 欧美军同video69gay| 天堂av中文字幕| 综合久久五月天| 福利影院在线看| 国产精品一二区| 巨人精品**| 伊人久久大香线蕉午夜av| 亚洲成人在线| 91国内在线播放| 91在线视频免费观看| 久久久精品少妇| 丁香五六月婷婷久久激情| 97超碰人人草| 亚洲免费视频一区二区| av黄在线观看| 国产精品久久999| 爱爱精品视频| 欧美性视频在线播放| 在线亚洲精品| 又色又爽又黄18网站| 国产欧美精品一区二区色综合 | 亚洲综合激情网| 国产精品xxxxxx| 精品伦理精品一区| 中文字幕在线观看日本| 欧美一区二粉嫩精品国产一线天| 高清精品久久| 先锋影音一区二区三区| 999亚洲国产精| 精产国品一区二区三区| 国产精品视频看| 中文字幕在线播| 亚洲国产精品视频在线观看| a级影片在线| 国产伦精品免费视频| 国产日韩欧美一区二区三区| 亚洲国产精品无码av| 国产寡妇亲子伦一区二区| 网站永久看片免费| 欧美三级日韩在线| 国产综合在线观看| 欧美在线日韩在线| 国产毛片精品| 国内精品在线观看视频| 成人深夜福利app| 久久久久人妻一区精品色欧美| 3d动漫精品啪啪一区二区竹菊| 色视频在线免费观看| 国产精品久久久久aaaa九色| 免费久久精品| 激情婷婷综合网| 欧美激情综合五月色丁香| 免费精品一区二区| 亚洲视频视频在线| 成人激情综合| 欧美一区观看| 人禽交欧美网站| 影音先锋男人资源在线观看| 欧美日韩亚洲另类| 欧美日韩xx| 91在线直播亚洲| 欧美 日韩 国产精品免费观看| www激情五月| 亚洲精品五月天| 亚洲国产精品久久久久久6q | 日韩精品一线二线三线| 老司机免费视频久久| 国产激情在线免费观看| 精品国产91乱高清在线观看| 色网站在线免费观看| 日本欧美一二三区| 精品精品99| 99九九99九九九99九他书对| 亚洲色大成网站www久久九九| 国产ts变态重口人妖hd| 欧美高清视频在线观看| 国产伦精品一区二区三区在线播放 | 麻豆免费在线观看视频| 亚洲图片自拍偷拍| 日韩大片b站免费观看直播| 国产成人av在线播放| 日韩精品一区二区三区免费观看| www.色就是色.com| 亚洲在线观看免费视频| 天天爱天天干天天操| 国产精欧美一区二区三区| 91综合在线| av天堂一区二区| 色成人在线视频| 国产在线更新| 国产在线一区二| 男女男精品视频| 欧美精品99久久久| 亚洲欧美激情四射在线日| 婷婷久久综合九色综合99蜜桃| 波多野结衣av一区二区全免费观看| 91看片淫黄大片一级在线观看| 中文字幕无码乱码人妻日韩精品| 久久99国产精品自在自在app| 亚洲精品合集| 日韩视频在线观看一区二区三区| 亚洲国产欧美在线人成| 成人在线观看网站| 国产精品露出视频| 毛片不卡一区二区| 亚洲精品视频在线观看免费视频| 日韩在线观看网址| 啪啪激情综合网| 一级片免费在线观看视频| 一本大道久久a久久精品综合|