好男人天堂网,久久精品国产这里是免费,国产精品成人一区二区,男人天堂网2021,男人的天堂在线观看,丁香六月综合激情

當前位置:首頁 > 網站舊欄目 > 學習園地 > 設計軟件教程 > 使用Annotation以1行代碼完成一個TableViewer

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


好的下面展示一下用這個工具編寫一個TableViewer的

清單1 DTO 在get方法上做的注解最終將被用作創(chuàng)建TableViewer
Java代碼 復制代碼
  1. package solonote.common.swt.test;   
  2.   
  3. import java.util.Date;   
  4.   
  5. import solonote.common.swt.table.ColumnAnnotation;   
  6.   
  7. /**  
  8.  * 測試用的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代碼 復制代碼
  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.         //定義表格結束   
  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. }  


好的,運用的設計模式什么都直接看doc和源代碼吧 注釋很全的,

自己認為這個工具還是可以幫助你的,需要更強大的功能請自己擴展,

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

看懂源代碼您還需要以下知識:

Swt Jface 關于Table和TableViewer的知識

Annotation的知識

關于java反射機制的知識

設計模式:工廠方法、策略模式、適配器模式

轉載請附帶此bolg文章的鏈接,感謝

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

安徽新華電腦學校專業(yè)職業(yè)規(guī)劃師為你提供更多幫助【在線咨詢
成人免费一级纶理片| 可以免费看污视频的网站| 久久国产精品自由自在| 日韩中文字幕一区二区不卡| 日韩av片免费播放| 国产成+人+综合+亚洲不卡| 成人高清视频在线观看| 亚洲女人国产香蕉久久精品| 国产视频一区在线| 99久久视频| 91麻豆精品国产高清在线| 成人高清免费| 亚洲wwwwww| 黄视频网站免费看| 色综合久久天天综合观看| 一级片片| 四虎影视库| 黄视频网站免费观看| 午夜激情视频在线播放| 国产一区二区精品| 精品久久久久久中文字幕一区| 成人影院一区二区三区| 日韩综合| 成人高清视频免费观看| 久久久成人影院| 日韩免费在线视频| 国产成a人片在线观看视频| 天天做人人爱夜夜爽2020毛片| 国产精品免费久久| 韩国三级视频网站| 精品国产一区二区三区久| 欧美日本二区| 一级女性大黄生活片免费| 国产原创视频在线| 二级片在线观看| 台湾毛片| 天天色成人网| 99久久网站| 国产成人欧美一区二区三区的| 国产a一级| 一本高清在线| 国产一区精品| 欧美激情一区二区三区在线 | 国产伦精品一区二区三区无广告 | 黄色福利片| 麻豆污视频| 精品视频在线观看免费| 成人免费网站久久久| 可以免费看污视频的网站| 日韩中文字幕在线观看视频| 久久精品道一区二区三区| 日韩字幕在线| 中文字幕97| 91麻豆爱豆果冻天美星空| 欧美夜夜骑 青草视频在线观看完整版 久久精品99无色码中文字幕 欧美日韩一区二区在线观看视频 欧美中文字幕在线视频 www.99精品 香蕉视频久久 | 成人a大片在线观看| 香蕉视频久久| 日本特黄一级| 日韩中文字幕一区| 999久久久免费精品国产牛牛| 亚欧乱色一区二区三区| 91麻豆精品国产片在线观看 | 国产91丝袜在线播放0| 日韩综合| 999久久狠狠免费精品| 欧美日本国产| 欧美电影免费看大全| 国产成人精品综合在线| 欧美大片a一级毛片视频| 九九干| 国产伦精品一区二区三区在线观看| 精品视频在线观看视频免费视频| 国产伦久视频免费观看 视频| 你懂的国产精品| 香蕉视频亚洲一级| 精品视频在线观看视频免费视频| 可以免费在线看黄的网站| 欧美大片a一级毛片视频| 国产精品免费久久| 欧美激情一区二区三区在线播放 | 国产精品自拍在线观看| 97视频免费在线观看| 午夜精品国产自在现线拍| 亚洲女人国产香蕉久久精品| 国产成a人片在线观看视频| 青青青草视频在线观看| 四虎影视库| 成人影视在线观看| 韩国毛片| 九九精品久久| 91麻豆国产| 九九免费精品视频| 日韩在线观看视频黄| 日韩av成人| a级精品九九九大片免费看| 好男人天堂网 久久精品国产这里是免费 国产精品成人一区二区 男人天堂网2021 男人的天堂在线观看 丁香六月综合激情 | 99色播| 日本在线不卡视频| 午夜欧美成人久久久久久| 黄视频网站在线看| 欧美激情一区二区三区在线播放| 二级片在线观看| 欧美激情伊人| 久久精品欧美一区二区| 精品久久久久久中文字幕一区| 久久久久久久男人的天堂| 在线观看成人网| 日韩在线观看视频黄| 欧美激情中文字幕一区二区| 日本伦理网站| 国产成人欧美一区二区三区的| 成人a大片在线观看| 精品久久久久久综合网| 91麻豆精品国产综合久久久| 精品在线观看国产| 在线观看成人网 | 国产视频一区二区在线观看| 韩国三级香港三级日本三级la | 成人a大片在线观看| 91麻豆精品国产自产在线观看一区| 亚久久伊人精品青青草原2020| 国产成人啪精品| 欧美a级片免费看| 午夜欧美成人久久久久久| 黄色福利片| 黄视频网站在线观看| 91麻豆爱豆果冻天美星空| 99热精品在线| 国产精品自拍一区| 国产精品自拍亚洲| 美女免费毛片| 国产精品123| 九九干| 国产一区二区精品尤物| 欧美α片无限看在线观看免费| 亚飞与亚基在线观看| 91麻豆高清国产在线播放| 国产成人精品综合久久久| 成人免费观看男女羞羞视频| 91麻豆精品国产自产在线观看一区| 香蕉视频一级| 久久成人性色生活片| 久久久久久久网| 免费国产在线观看不卡| 亚洲www美色| 午夜在线亚洲| 国产精品1024永久免费视频| 欧美大片a一级毛片视频| 国产成人啪精品| 日韩专区亚洲综合久久| 亚洲 激情| 精品国产一区二区三区精东影业 | 在线观看成人网| 九九久久国产精品大片| 国产原创视频在线| 好男人天堂网 久久精品国产这里是免费 国产精品成人一区二区 男人天堂网2021 男人的天堂在线观看 丁香六月综合激情 | 欧美国产日韩一区二区三区| 欧美另类videosbestsex高清 | 国产不卡在线看| 国产91精品露脸国语对白| 天天做日日爱| 久久精品欧美一区二区| 黄色福利片| 日本免费看视频| 欧美1区2区3区| 精品国产一区二区三区免费 | 免费国产在线观看| 亚洲天堂在线播放| a级黄色毛片免费播放视频| 亚久久伊人精品青青草原2020| 美国一区二区三区| 亚洲第一页色| 国产精品自拍在线| 九九久久国产精品| 欧美爱爱网| 亚洲 国产精品 日韩| 国产不卡福利| 香蕉视频久久| 日韩男人天堂| 欧美夜夜骑 青草视频在线观看完整版 久久精品99无色码中文字幕 欧美日韩一区二区在线观看视频 欧美中文字幕在线视频 www.99精品 香蕉视频久久 | 欧美夜夜骑 青草视频在线观看完整版 久久精品99无色码中文字幕 欧美日韩一区二区在线观看视频 欧美中文字幕在线视频 www.99精品 香蕉视频久久 | 夜夜操网| 欧美日本国产| 欧美大片aaaa一级毛片| 免费国产在线视频| 你懂的日韩| 高清一级毛片一本到免费观看| 国产不卡福利| 国产伦精品一区二区三区在线观看| 国产网站免费视频| 久草免费资源| 亚洲第一色在线| 久久国产精品自由自在| 美国一区二区三区| 好男人天堂网 久久精品国产这里是免费 国产精品成人一区二区 男人天堂网2021 男人的天堂在线观看 丁香六月综合激情 | 国产a视频精品免费观看| 国产国产人免费视频成69堂| 久久99欧美| 日韩在线观看免费完整版视频| 亚洲wwwwww|