成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

JTable和TableModel簡化Swing

開發 后端
本文介紹JTable和TableModel簡化Swing開發,分析JTable和TableModel目前的設計方法,說明這種設計的不足,展示為什么它沒有實現模型-視圖-控制器(MVC)模式的真正目標。

Java Desktop 的再介紹”強調了今年的 JavaOne 大會。對于那些抱怨 Swing 太慢、太難使用、界面太難看的開發人員來說,Swing 和 GUI 開發所做的更新努力,并沒有帶來什么受人歡迎的好消息。如果您最近沒有用過 Swing,那么您會很高興聽到其中的許多問題已經得到解決。Swing 被重新設計,它能執行得更好,并能更好地利用 Java 2D API。Swing 的開發者在 1.4 版甚至最新發布的 5.0 版中提高了外觀支持。Swing 從沒像現在這么好過。

如果以前曾經用過 JTable,那么您可能也同時被迫使用了 TableModel。您可能還注意到,每個 TableModel 中的所有代碼,與其他 TableModel 中的代碼幾乎是一樣的,在編譯的 Java 類中,有差異的代碼實際上是不存在的。

本文將分析JTable和TableModel目前的設計方法,說明這種設計的不足,展示為什么它沒有實現模型-視圖-控制器(MVC)模式的真正目標。您將看到框架和構成 TMF 框架的代碼 —— 我以前編寫的代碼與最常用的開放源代碼項目的組合。使用該框架,開發人員可以把 TableModel 的大小從數百行代碼減少到只有區區一行,并把重要的表信息放在外部 XML 文件中。在讀完本文之后,只使用如下所示的一行代碼,您就可以管理您的 JTable 數據:

  1. TableUtilities.setViewToModel("tableconfig.xml", "My Table",  
  2. myJTable, CollectionUtilities.observableList(myData)); 

JTable和TableModel存在的 MVC 問題

MVC 已經成為非常流行的 UI 設計模式,因為它把業務邏輯清晰地從數據的視圖中分離了出來。Struts 是 MVC 在 Web 上應用的一個非常好的例子。最初,Swing 最大的一個賣點是它采用了 MVC,將視圖從模型中分離了出來,代碼背后的想法是:代碼的模塊化程度足夠高,所以,不用修改模型中的任何代碼,就可以分離出視圖。我想,任何用過JTable和TableModel的人都會發笑,告訴您這是絕對不可能的。使用 MVC 設計模式的理想情況是,在開發人員用 JList 或 JComboBox 替換 JTable 時,可以不用修改表示數據的模式中的代碼。但是,在 Swing 中做不到這點。

Swing 使得把 JTable、 JList 和 JComboBox 熱交換到應用程序中成為不可能,即使所有這三個組件都是用來為相同的數據模型提供視圖。對于 Swing 中的 MVC 設計,這是一個嚴重的不足。如果您想為 JTable 交換 JList,就必須重寫視圖背后的全部代碼,才能實現該交換。

JTable和TableModel的另一個 MVC 缺陷是:模型變化的時候,視圖不會更新自身。開發人員必須保持對模型的引用,并調用一個函數,這樣模型才會告訴視圖對自身進行更新;但是,理想的情況應當是:不需要任何額外的代碼,就能實現自動更新。

最后,JTable和TableModel 組件設計的問題是,它們彼此之間纏雜得過于密切。如果您修改了 JTable 中的代碼,那么您需要確保您沒有破壞負責處理的 TableModel,反之亦然。對于一個被認為是在模塊化基礎上建立的設計模式來說,目前的實現顯然是一種存在過多依賴關系的設計。

TMF 框架更好地遵循了 MVC 的目標,它把 JTable 中視圖和模型的工作更加清晰地分離開來。雖然它還沒有達到讓組件能夠熱切換的更高目標,但是它已經在正確方向上邁出了一步。

【編輯推薦】

  1. Swing組件相關的操作
  2. TikeSwing創建MVC體系結構
  3. 全面介紹Swing容器
  4. 淺析Accelerator key in Java Swing
  5. JFC和Swing中的JLabel組件
責任編輯:佚名 來源: 中國IT實驗室
相關推薦

2009-06-29 15:28:00

TableModelSwing開發

2012-01-17 14:09:54

JavaSwing

2009-07-15 09:06:07

BeanTableMoSwing

2009-07-14 09:52:10

TableModelESwing

2009-07-15 15:35:59

Swing程序Swing性能

2009-07-10 17:20:38

Swing構件AWT構件

2009-07-14 15:01:02

AWT和Swing

2009-07-17 11:13:46

AWT和SwingSwing組件

2009-07-16 13:37:33

Swing和AWT

2009-07-10 17:03:17

AWT組件Swing組件

2009-07-15 16:39:51

AWT和Swing

2009-07-10 11:07:18

Swing和SWT

2009-07-17 09:36:14

SWT和Swing的區

2009-07-17 10:11:55

AWT和Swing

2012-01-17 13:53:16

JavaSwing

2009-07-16 13:50:28

AWT和Swing

2009-07-17 15:30:30

JFaceAWT和SWTSwing

2009-07-14 16:02:04

SWT和Swing

2009-07-15 15:15:42

比較Swing和SWT

2012-01-17 17:21:24

JavaSwing
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: av一级久久| 久久久国产一区二区 | 国产永久免费 | 日本精品免费在线观看 | 91传媒在线观看 | 欧美亚洲另类在线 | 三级国产三级在线 | 视频国产一区 | 欧美一区二区三区久久精品 | 色视频在线免费观看 | 中文字幕蜜臀av | 亚洲高清免费观看 | 久久大 | 久久久久国产 | 亚洲精品视频免费观看 | 亚洲视频 欧美视频 | 一区二区三区精品在线 | 青娱乐一区二区 | 亚洲一区二区三区免费 | 午夜视频在线免费观看 | 在线免费观看毛片 | 一区网站 | 成人做爰9片免费看网站 | 国产一级毛片视频 | 亚洲成人精品一区 | 日韩精品视频在线播放 | 久久精品 | 国产成人精品网站 | 国产综合久久 | 日韩视频一区二区在线 | 偷牌自拍| 成人国产免费观看 | 久久久男人的天堂 | 国产高清免费视频 | 黄色三级免费网站 | av中文字幕在线播放 | 羞羞视频在线网站观看 | 国产成人免费视频网站高清观看视频 | 国产一级视屏 | 成年女人免费v片 | 免费成人高清在线视频 |