日本综合一区二区|亚洲中文天堂综合|日韩欧美自拍一区|男女精品天堂一区|欧美自拍第6页亚洲成人精品一区|亚洲黄色天堂一区二区成人|超碰91偷拍第一页|日韩av夜夜嗨中文字幕|久久蜜综合视频官网|精美人妻一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問(wèn)題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營(yíng)銷解決方案
淺談Swing中的渲染器接口

Swing的API具有很強(qiáng)的靈活性和可擴(kuò)展性,比如標(biāo)準(zhǔn)復(fù)合數(shù)據(jù)型組件一般不需要進(jìn)行渲染器擴(kuò)展,就可以實(shí)現(xiàn)許多應(yīng)用,但是當(dāng)遇到需要自定義擴(kuò)展的需求時(shí),Swing的高度抽象靈活的MVC框架也可以優(yōu)雅從容的完成。Swing的這一特色典型的體現(xiàn)在其渲染器擴(kuò)展思想上。那么如何使用渲染器呢?如何自定義渲染器來(lái)擴(kuò)展組件呢?如何將渲染器思想應(yīng)用到自定義組件上呢?

創(chuàng)新互聯(lián)建站堅(jiān)持“要么做到,要么別承諾”的工作理念,服務(wù)領(lǐng)域包括:網(wǎng)站建設(shè)、成都網(wǎng)站建設(shè)、企業(yè)官網(wǎng)、英文網(wǎng)站、手機(jī)端網(wǎng)站、網(wǎng)站推廣等服務(wù),滿足客戶于互聯(lián)網(wǎng)時(shí)代的晉州網(wǎng)站設(shè)計(jì)、移動(dòng)媒體設(shè)計(jì)的需求,幫助企業(yè)找到有效的互聯(lián)網(wǎng)解決方案。努力成為您成熟可靠的網(wǎng)絡(luò)建設(shè)合作伙伴!

復(fù)合數(shù)據(jù)類型的組件如JTable、JTree、JList以及JComboBox都定義適合自己類型的渲染器接口,它們與渲染器接口之間的映射關(guān)系如下表所示:

組件 渲染器
JTable TableCellRenderer
JTree TreeCellRenderer
JList ListCellRenderer
JComboBox ListCellRenderer

TableCellRenderer接口定義了JTable渲染器接口:

 
 
 
  1. public interface TableCellRenderer {  
  2. Component getTableCellRendererComponent(JTable table, Object value,  
  3. boolean isSelected, boolean hasFocus,  
  4. int row, int column);  

TreeCellRenderer定義了JTree的渲染器接口。

 
 
 
  1. public interface TreeCellRenderer {  
  2. Component getTreeCellRendererComponent(JTree tree, Object value,  
  3. boolean selected, boolean expanded,  
  4. boolean leaf, int row, boolean hasFocus);  

ListCellRenderer是JList、JComboBox的渲染器接口。

 
 
 
  1. public interface ListCellRenderer  
  2. {  
  3. Component getListCellRendererComponent(  
  4. JList list,  
  5. Object value,  
  6. int index,  
  7. boolean isSelected,  
  8. boolean cellHasFocus);  
  9. }  

其實(shí),渲染器不僅僅可以用在標(biāo)準(zhǔn)組件JTable、JList、JTree和JComboBox,也可以在自己定制的組件中使用渲染器的思想實(shí)現(xiàn)復(fù)雜的界面,比如UML圖、工作流圖、電路圖,模擬JTable實(shí)現(xiàn)類似于MS Excel的電子表格控件,甚至可以實(shí)現(xiàn)自己的用戶界面設(shè)計(jì)工具。前面文章中曾經(jīng)提到過(guò)的數(shù)據(jù)庫(kù)設(shè)計(jì)插件和報(bào)表設(shè)計(jì)插件就是根據(jù)渲染器原理自定義出的組件。

因此,熟悉了Swing的結(jié)構(gòu)尤其是渲染器的思想,加上一些額外的知識(shí),比如double buffering、glass pane、robot、swing threading、color model、java2d等等,可以做出許多事情來(lái)。人有多大膽,地有多大產(chǎn)。但深入學(xué)習(xí)和了解Swing的基本結(jié)構(gòu),這是前提。今天的文章主要是以實(shí)例演示了這些渲染器的應(yīng)用,文中的例子只是演示作用,加深你對(duì)渲染器的印象。但是真正吃透渲染器的各種技術(shù),還需要自己深入的學(xué)習(xí)和實(shí)踐。

【編輯推薦】

  1. 介紹Swing線程相關(guān)處理
  2. 淺析Swing客戶端知識(shí)
  3. Swing線程解決方案
  4. 全面比較AWT和Swing
  5. 概述JSci.swing包的核心

本文題目:淺談Swing中的渲染器接口
瀏覽地址:http://www.dlmjj.cn/article/dhsdeio.html