麻豆传媒视频在线,国产91精品不卡视频,欧美jizz19性欧美,污视频网站在线观看,91涩漫在线观看,伊人发布在线,九色porny丨首页在线,福利视频一区,久久av网址,久久人人视频

當(dāng)前位置:首頁 > 網(wǎng)站舊欄目 > 學(xué)習(xí)園地 > 設(shè)計(jì)軟件教程 > 使用Annotation以1行代碼完成一個(gè)TableViewer

使用Annotation以1行代碼完成一個(gè)TableViewer
2010-01-14 23:13:47  作者:  來源:
最近一直在找一個(gè)方便的SWT開發(fā)方法...但是還是陷入了寫一個(gè)TableViewer就得200多行(包括 Table ContentProvider...Sorter..)等等..也用了些設(shè)計(jì)模式,不過還是要寫很多,這件事情真讓人沮喪。昨天想到用注解( Annotation)嘗試著完成這個(gè)工作,今天早晨就開始做了,終于一天的時(shí)間把它做了出來,效果十分令人滿意,本來200多行的代碼現(xiàn)在變成了3行..我從來沒想過TableViewer可以那么容易的創(chuàng)建,確實(shí)反射機(jī)制給java增添了無限的擴(kuò)展^^


好的下面展示一下用這個(gè)工具編寫一個(gè)TableViewer的

清單1 DTO 在get方法上做的注解最終將被用作創(chuàng)建TableViewer
Java代碼 復(fù)制代碼
  1. package solonote.common.swt.test;   
  2.   
  3. import java.util.Date;   
  4.   
  5. import solonote.common.swt.table.ColumnAnnotation;   
  6.   
  7. /**  
  8.  * 測(cè)試用的DTO  
  9.  * @author solonote  
  10.  * @version 0.1.0 2007-12-17 下午07:40:28  
  11.  */  
  12. public class TestDTO{   
  13.   
  14.     private String string;   
  15.        
  16.     private Date date;   
  17.        
  18.     private int integer;   
  19.        
  20.     @ColumnAnnotation(   
  21.             header = "字符", index = 0, imageBundleId = "solonote.common.swt",   
  22.             imangURL = "/icon/hourglass.png", width = 120)   
  23.     public String getString() {   
  24.         return string;   
  25.     }   
  26.   
  27.     public void setString(String string) {   
  28.         this.string = string;   
  29.     }   
  30.   
  31.   
  32.     @ColumnAnnotation(   
  33.         header = "日期", index = 1,   
  34.         imangURL = "icon/error.png", width = 180)          
  35.     public Date getDate() {   
  36.         return date;   
  37.     }   
  38.   
  39.     public void setDate(Date date) {   
  40.         this.date = date;   
  41.     }   
  42.   
  43.     @ColumnAnnotation(   
  44.             header = "數(shù)字", index = 2,   
  45.             imangURL = "icon/a.png", isSort = false,    
  46.             width = 100)   
  47.     public int getInteger() {   
  48.         return integer;   
  49.     }   
  50.   
  51.     public void setInteger(int integer) {   
  52.         this.integer = integer;   
  53.     }   
  54. }  


清單2 執(zhí)行程序
Java代碼 復(fù)制代碼
  1. package solonote.common.swt.test;   
  2.   
  3. import java.util.Date;   
  4.   
  5. import org.eclipse.jface.viewers.TableViewer;   
  6. import org.eclipse.swt.SWT;   
  7. import org.eclipse.swt.layout.FillLayout;   
  8. import org.eclipse.swt.widgets.Display;   
  9. import org.eclipse.swt.widgets.Shell;   
  10. import org.eclipse.swt.widgets.Table;   
  11.   
  12. import solonote.common.swt.table.TableRender;   
  13.   
  14. public class TestTable {   
  15.   
  16.     public static void main(String[] args) throws Exception {   
  17.         final Display display = Display.getDefault();   
  18.         final Shell shell = new Shell();   
  19.         shell.setLayout(new FillLayout());   
  20.         shell.setSize(420375);   
  21.         shell.setText("SWT Application");   
  22.         shell.open();   
  23.         //定義表格   
  24.         Table table = new Table(shell, SWT.FULL_SELECTION | SWT.BORDER);   
  25.         table.setLinesVisible(true);   
  26.         table.setHeaderVisible(true);   
  27.            
  28.         //一行代碼創(chuàng)建TableViewer   
  29.         TableViewer tableViewer =TableRender.renderTable(table, TestDTO.class);   
  30.         //定義表格結(jié)束   
  31.            
  32.         //定義數(shù)據(jù)   
  33.         TestDTO dto1 = new TestDTO();   
  34.         dto1.setString("bbc");   
  35.         dto1.setDate(new Date());   
  36.         dto1.setInteger(13);   
  37.            
  38.         TestDTO dto2 = new TestDTO();   
  39.         dto2.setString("abc");   
  40.         dto2.setDate(new Date(dto1.getDate().getTime() + 800));   
  41.         dto2.setInteger(11);   
  42.         tableViewer.setInput(new TestDTO[]{dto1,dto2});   
  43.                
  44.         shell.layout();   
  45.         while (!shell.isDisposed()) {   
  46.             if (!display.readAndDispatch())   
  47.                 display.sleep();   
  48.         }   
  49.     }   
  50.   
  51. }  


好的,運(yùn)用的設(shè)計(jì)模式什么都直接看doc和源代碼吧 注釋很全的,

自己認(rèn)為這個(gè)工具還是可以幫助你的,需要更強(qiáng)大的功能請(qǐng)自己擴(kuò)展,

這個(gè)小工具在此GPL3下開源 http://www.gnu.org/licenses/gpl-3.0.txt

看懂源代碼您還需要以下知識(shí):

Swt Jface 關(guān)于Table和TableViewer的知識(shí)

Annotation的知識(shí)

關(guān)于java反射機(jī)制的知識(shí)

設(shè)計(jì)模式:工廠方法、策略模式、適配器模式

轉(zhuǎn)載請(qǐng)附帶此bolg文章的鏈接,感謝

20071218 10:44 增加了對(duì)每一列的位置控制,將注解由原來的字段上移到了get方法上,增加了一個(gè)類使得創(chuàng)建只需要1行代碼了

安徽新華電腦學(xué)校專業(yè)職業(yè)規(guī)劃師為你提供更多幫助【在線咨詢
理论片日本一区| 有坂深雪av一区二区精品| 色88888久久久久久影院| 成人黄色毛片| 性高爱久久久久久久久| 粉嫩一区二区| 欧美视频三区| 亚洲肉体裸体xxxx137| 精品久久久久久久久久久aⅴ| 成人看的视频| 国产欧美三级| 国产老妇另类xxxxx| 久久久影院官网| 亚洲欧美激情在线| 在线日韩av片| 亚洲国产精品久久久久久| 亚洲色图日韩av| 久久精品91久久久久久再现| 高清欧美一区二区三区| 国产精品va在线播放| 原千岁中文字幕| 三区在线视频| 高潮在线视频| 波多野结衣一区二区三区免费视频| 日韩欧美黄色| 亚洲国产mv| 成人美女视频在线观看18| 国产精品超碰97尤物18| 91福利国产成人精品照片| 日韩成人av在线| 久久久久久美女| 在线视频99| 麻豆av在线播放| 日本精品国产| 好吊一区二区三区| 丰满放荡岳乱妇91ww| 亚洲精品高清在线| 欧美一区二区视频在线观看2022| 国产一区二区三区在线观看视频| 78色国产精品| 超碰免费在线| 午夜不卡一区| 精品999成人| 久久久久久久久免费| 在线区一区二视频| 久久好看免费视频| 在线视频毛片| 欧美一级一级性生活免费录像| 极品av少妇一区二区| 成人va在线观看| 在线一区二区视频| 欧美高清第一页| 黄色影院在线播放| 青青伊人久久| 在线亚洲一区| 亚洲精品中文字幕乱码三区| 亚洲国产天堂久久国产91| 国产精品精品久久久| 性欧美1819sex性高清大胸| 老司机凹凸av亚洲导航| 日韩精品五月天| 一区二区三区不卡在线观看| 国产亚洲精品美女久久久久| 男人天堂免费视频| 日本一区免费网站| 亚洲毛片网站| 香蕉成人伊视频在线观看| 最近的2019中文字幕免费一页| 最新理论片影院| 四虎影视成人精品国库在线观看| 一本色道精品久久一区二区三区| 亚洲国产精品二十页| 精品国产免费人成电影在线观看四季| 欧美在线观看日本一区| 丝袜在线观看| 亚洲成av人电影| 亚洲欧洲av一区二区三区久久| 亚洲女成人图区| 一区 二区 三区| 精品淫伦v久久水蜜桃| 成人一道本在线| 亚洲第一二三四五区| 天海翼一区二区三区四区在线观看| 成人av在线播放| 国产成人综合网| 欧美大片国产精品| 中文字幕在线视频免费观看| 欧美男男freegayvideosroom| 91香蕉视频黄| 中文字幕av一区中文字幕天堂 | www.色综合.com| 日韩视频一区二区在线观看| 米奇在线777| 一区二区在线免费播放| 成人午夜在线视频| 亚洲欧美在线x视频| 成人精品一区二区三区免费| 国产成人精品视| 精品国内亚洲在观看18黄| aa在线视频| 国产欧美日本| 在线不卡的av| 美女的诞生在线观看高清免费完整版中文| 超碰在线一区| 中文字幕亚洲成人| 日本高清不卡在线| 久久精品一级| 中文字幕精品一区| 91精品国产沙发| 成人在线观看免费播放| 成人va在线观看| 九九热这里只有精品6| 免费日韩电影| 成人福利视频在线看| 在线性视频日韩欧美| 波多野结衣在线高清| 蜜桃在线一区二区三区| 精品国产电影一区二区| 在线观看的av| 日韩精品五月天| 亚洲欧洲在线播放| 在线毛片观看| 久久久一区二区三区| 91成人福利在线| 好吊妞国产欧美日韩免费观看网站| 国产精品乱码一区二区三区软件| 欧美一性一乱一交一视频| 国产精品玖玖玖在线资源| 一区二区三区成人| 少妇精品放荡导航| 亚洲美女色禁图| 日韩精品小视频| 日韩免费电影| 国产精品高潮久久久久无| 91精品国产综合久久香蕉922| 欧美日一区二区| 7777精品伊人久久久大香线蕉的 | 欧美老肥妇做.爰bbww| 视频一区二区三区在线看免费看| 中文字幕一区二区av| 日韩精品中午字幕| 午夜影院一区| 国产精品女主播在线观看| 国产玖玖精品视频| 欧美1区免费| 亚洲韩国欧洲国产日产av| 日韩pacopacomama| 18欧美乱大交hd1984| 在线伊人免费视频| 日韩vs国产vs欧美| 欧美精品久久久久久久免费观看 | 国产天堂在线| 美女诱惑一区| 色香阁99久久精品久久久| 精品视频一区二区三区| 亚洲超碰97人人做人人爱| 欧美视频免费一区二区三区| 男人的天堂亚洲一区| 欧美精品久久久久a| 日韩理论电影| 亚洲精品国精品久久99热一| 精品久久99| 五月天丁香久久| 在线黄色网页| 国产精品国产馆在线真实露脸 | 亚洲精品xxx| 91视频成人| 欧美写真视频网站| 理论不卡电影大全神| 一区二区三区在线观看欧美| 9色在线视频网站| 欧美激情一区在线| 久久久pmvav| 国产亚洲精品bt天堂精选| 日韩一二三四| 久久奇米777| 国产高清视频在线| 中文字幕不卡三区| 欧美一区二区三区| 亚洲天堂a在线| 91精品久久| 亚洲va欧美va人人爽午夜| 成年男女免费视频网站不卡| 红桃视频成人在线观看| 久久爱91午夜羞羞| 精品视频1区2区3区| 国产精品777777在线播放| 欧美一级高清大全免费观看| eeuss国产一区二区三区四区| 亚洲成人激情视频| 精品视频99| 久久久久国产视频| 久久精品亚洲国产| 久久国产综合精品| 三级在线观看视频| 影音先锋在线播放| 中文视频在线| 最新在线你懂的| 欧美资源在线观看| 日韩在线观看免费网站|