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

Swing模型和渲染器

開發 后端
本文介紹可以通過操作Swing模型和渲染器來控制這個過程,所有的矢量組件,包括JTree、JList以及JComboBox都使用渲染器方法,并不僅限于JTable。

Swing模型和渲染器

在這些更為復雜的Swing組件中,渲染器是提供可擴展性的關鍵。我們以JTable作為渲染器的示例。缺省表格中的每一格可能都有一個JLabel,這對于比較小的數據集來說可行,但是對于大數據集就行不通。比如,如果使用這種表格顯示1000x1000的數據集,需要的內存可能要1G,即使每個格子都是空的。

如果解決這種擴展性問題?Swing的JTable使用一個組件來畫出所有相同類型的格子。比如所有的String對象的格子都使用相同的組件畫。這種類型的組件被稱作渲染器(renderer),使用渲染器顯示多個表格極大的減小了大型數據表存儲空間。

當渲染器用來顯示表格時,JTable從model中獲取格子中的數據,然后使用這些數據對渲染器進行配置,然后使用該渲染器畫出該格子。接下來,渲染器繼續移動到下一個格子,然后重復這個過程。

注意你可以通過操作Swing模型和渲染器來控制這個過程,所有的矢量組件,包括JTree、JList以及JComboBox都使用渲染器方法,并不僅限于JTable。

模型(Model)

直接操作Swing的模型(Model)對于編寫可擴展的用戶界面至關重要,下面代碼是往JComboBox添加數據項的通常做法:

這些代碼只是簡單的往JComboBox中添加數據項,代碼同往AWT的Choice中添加選項類似,這種方法對于小數據量來說可以,但是當要添加大量數據時就會明顯變得非常慢。

盡管上面的代碼沒有明確引用任何模型,JComboBox的模型對象實際上參與這個過程,每次調用addItem時,JComboBox內部發生了許多操作:組件將請求傳遞給JComboBox的模型,模型發送一個事件表明一個新項被添加。很明顯,如果你直接操作模型的將會更高效,如下例所示:

這樣為什么會更快呢?原因有兩個。***,因為所有項是一次添加到模型去,而不是一個一個的,只有一個事件發出,這意味著更少的事件觸發,更少的方法調用。第二是因為需要通知變化的對象更少,總的工作量等于觸發次數乘以偵聽器數目。因為模型是新創建的,偵聽在上面的偵聽器為零,這意味著沒有觸發事件發生。

從上面的例子可以學到兩點:

盡可能使用批操作,盡量減少觸發事件的數量。

當初始化或者需要完全替換模型的內容時,考慮重新生成模型,不要使用已經存在的模型,已存在模型上已經保持了很多的偵聽器,新生成的模型沒有偵聽器,這樣避免了不必要的處理函數的調用。

觸發事件數量嚴重影響你的程序啟動時間,也會影響打開對話框和相似操作的時間。

本想詳細舉幾個例子進一步說明Swing模型和渲染器的用法和好處,但網絡速度還是太慢,寫一篇文章太痛苦了...加上篇幅原因,準備以后再寫一文,彌補這方面的知識。

【編輯推薦】

  1. 淺談學習Swing組件
  2. Swing使用invokeLater()方法
  3. 淺析Swing組件的規則
  4. 詳解Swing中JTree組件的功能
  5. 簡單介紹Swing外觀
責任編輯:佚名 來源: 電子工業出版社
相關推薦

2009-07-16 10:11:06

渲染器RendererSwing組件

2009-07-16 10:26:49

渲染器接口Swing

2010-08-13 11:02:27

Flex渲染器

2017-12-26 14:27:24

2014-06-18 10:34:41

Android字體渲染器OpenGL ES

2010-08-13 11:21:31

Flex渲染器

2012-01-17 17:21:24

JavaSwing

2022-04-18 08:09:44

渲染器DOM掛載Vue.js

2009-06-22 13:27:01

JSF組件模型

2010-06-30 13:45:05

ZKZK 5.0.3

2009-07-09 11:55:17

Swing模型過濾

2009-07-15 15:35:59

Swing程序Swing性能

2009-07-14 09:09:08

Swing模型過濾器

2009-07-14 11:30:15

Swing線程

2022-04-19 23:01:54

Vue.jsDOM節點DOM樹

2022-08-14 23:04:54

React前端框架

2022-04-20 09:07:04

Vue.js的事件處理

2013-07-10 10:24:10

2024-06-11 00:00:00

渲染器提示符工具

2024-01-29 00:51:39

前端開發利器
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 久久久精彩视频 | 欧美精品一区二区三区在线播放 | 日韩精品1区2区3区 成人黄页在线观看 | 亚洲国产一区视频 | 在线看亚洲 | 久久天堂网| 国产精品久久久久久久午夜片 | 免费看黄色视屏 | 成人午夜网站 | 日韩激情在线 | 日韩成人在线观看 | 一区二区国产精品 | 黄视频网址 | 久久骚| 91久久综合亚洲鲁鲁五月天 | 91综合在线观看 | 日韩欧美在线视频一区 | 拍真实国产伦偷精品 | 中文字幕高清 | 99re66在线观看精品热 | 国产做a爱免费视频 | 亚洲午夜三级 | 欧美一区二区三区 | 国产精品国产精品国产专区不片 | www.四虎.com| 久久99精品视频 | 成人欧美在线 | 美女逼网站 | 夜夜撸av| 国产精品久久久久久久久免费樱桃 | 先锋资源吧 | 久久精品视频免费观看 | 毛片a级毛片免费播放100 | 国产精品69毛片高清亚洲 | 国产精品一区视频 | 日日操夜夜操视频 | 久久久精品在线 | 成人亚洲视频 | 成人精品鲁一区一区二区 | 中文字幕一区二区在线观看 | 久久久99精品免费观看 |