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

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

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


好的下面展示一下用這個(gè)工具編寫(xiě)一個(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下開(kāi)源 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ì)每一列的位置控制,將注解由原來(lái)的字段上移到了get方法上,增加了一個(gè)類使得創(chuàng)建只需要1行代碼了

安徽新華電腦學(xué)校專業(yè)職業(yè)規(guī)劃師為你提供更多幫助【在線咨詢
欧美1区| 亚洲精品永久一区| 毛片高清| 午夜在线影院| 黄视频网站免费看| 精品国产香蕉在线播出| 日韩男人天堂| 精品国产一区二区三区国产馆| 精品国产一级毛片| 亚洲天堂免费| 成人a级高清视频在线观看| 日韩中文字幕在线观看视频| 欧美爱爱动态| 欧美激情一区二区三区在线| 国产一区二区精品尤物| 欧美一级视频免费观看| 精品国产一区二区三区精东影业| 二级特黄绝大片免费视频大片| 成人影视在线播放| 欧美激情一区二区三区中文字幕| 日韩欧美一二三区| 日韩免费片| 日韩在线观看视频免费| 日韩女人做爰大片| 免费的黄色小视频| 999久久久免费精品国产牛牛| 免费国产一级特黄aa大片在线| 美女免费精品高清毛片在线视| 你懂的日韩| 99热热久久| 欧美a级v片不卡在线观看| 韩国毛片| 午夜在线亚洲男人午在线| 免费一级片在线| 国产成人精品在线| 99久久精品国产免费| 国产精品123| 国产伦理精品| 国产一区精品| 日本在线www| 国产成人精品一区二区视频| 精品久久久久久中文| 麻豆系列国产剧在线观看| 日日日夜夜操| 午夜激情视频在线观看| 精品国产一区二区三区久久久狼 | 国产伦精品一区二区三区无广告| 欧美夜夜骑 青草视频在线观看完整版 久久精品99无色码中文字幕 欧美日韩一区二区在线观看视频 欧美中文字幕在线视频 www.99精品 香蕉视频久久 | 黄视频网站在线看| 亚洲www美色| 99久久精品国产高清一区二区 | 香蕉视频亚洲一级| 国产网站免费观看| 国产一区二区精品| 国产网站麻豆精品视频| 免费国产在线观看不卡| 日本伦理网站| 久久99青青久久99久久| 成人高清视频免费观看| 国产成人精品综合| 可以在线看黄的网站| 久久久久久久男人的天堂| 你懂的日韩| 国产成人精品综合在线| 四虎影视库| 亚洲天堂在线播放| a级黄色毛片免费播放视频| 色综合久久久久综合体桃花网| 亚洲女人国产香蕉久久精品 | 黄色短视屏| 欧美另类videosbestsex视频| 美女免费精品高清毛片在线视| 成人免费一级毛片在线播放视频| 欧美夜夜骑 青草视频在线观看完整版 久久精品99无色码中文字幕 欧美日韩一区二区在线观看视频 欧美中文字幕在线视频 www.99精品 香蕉视频久久 | 国产国语在线播放视频| 成人免费一级毛片在线播放视频| 精品国产亚一区二区三区| 日韩在线观看网站| 国产网站免费在线观看| 成人在激情在线视频| 精品久久久久久综合网| 亚洲www美色| 国产一区二区精品在线观看| 国产精品123| 91麻豆精品国产片在线观看| 欧美激情影院| 日本免费乱人伦在线观看 | 成人高清视频免费观看| 成人av在线播放| 国产成人精品综合在线| 日韩中文字幕一区二区不卡| 精品久久久久久影院免费| 可以免费看毛片的网站| 黄视频网站在线免费观看| 日韩一级黄色大片| 国产视频网站在线观看| 美女免费精品高清毛片在线视| 色综合久久天天综线观看| 久草免费在线视频| 超级乱淫黄漫画免费| 免费一级生活片| 国产一级强片在线观看| 日韩在线观看免费| 欧美a级成人淫片免费看| 亚洲女初尝黑人巨高清在线观看| 久久国产一久久高清| 亚洲www美色| 国产原创视频在线| 一本伊大人香蕉高清在线观看| 青青青草影院 | 国产高清在线精品一区二区| 国产成人精品影视| 99热视热频这里只有精品| 精品国产亚一区二区三区| 日韩中文字幕在线观看视频| 日本免费看视频| 精品国产亚洲人成在线| 欧美日本免费| 日韩av成人| 国产成a人片在线观看视频| 精品国产亚洲人成在线| 精品国产三级a| 国产麻豆精品免费视频| 欧美a级v片不卡在线观看| 久久国产一久久高清| 国产91精品一区| 欧美激情影院| 亚洲天堂一区二区三区四区| 九九久久99| 欧美激情一区二区三区在线播放| 久久国产精品只做精品| 国产国语在线播放视频| 欧美激情一区二区三区在线| 久久久久久久网| 日日日夜夜操| 91麻豆精品国产片在线观看| 99久久精品国产国产毛片 | 成人a大片高清在线观看| 成人免费观看视频| 久久精品大片| 国产一区二区福利久久| 国产成人啪精品视频免费软件| 成人免费福利片在线观看| 精品国产一区二区三区久久久蜜臀 | 精品久久久久久中文| 青青青草影院| 精品国产亚洲人成在线| 美女免费毛片| 青青青草影院 | 国产精品1024永久免费视频| 91麻豆国产福利精品| 可以免费看毛片的网站| 97视频免费在线| 日本免费乱人伦在线观看 | 亚欧成人毛片一区二区三区四区| 99久久精品国产麻豆| 91麻豆tv| 香蕉视频亚洲一级| 国产91精品一区二区| 欧美电影免费| 国产麻豆精品| 韩国三级香港三级日本三级la| 欧美电影免费| 欧美激情伊人| 91麻豆爱豆果冻天美星空| 久久久成人网| 91麻豆精品国产自产在线| 青青青草影院 | 欧美另类videosbestsex| 日本在线www| 好男人天堂网 久久精品国产这里是免费 国产精品成人一区二区 男人天堂网2021 男人的天堂在线观看 丁香六月综合激情 | 国产精品12| 97视频免费在线| 色综合久久天天综合| 国产91视频网| 欧美国产日韩精品| 日韩在线观看视频免费| 91麻豆精品国产综合久久久| 成人av在线播放| 精品视频在线观看一区二区三区| 欧美a级片免费看| 一级片免费在线观看视频| 精品在线视频播放| 亚洲女人国产香蕉久久精品 | 天堂网中文字幕| 日韩一级黄色| 好男人天堂网 久久精品国产这里是免费 国产精品成人一区二区 男人天堂网2021 男人的天堂在线观看 丁香六月综合激情 | 久久精品店| 国产伦精品一区二区三区无广告| 日韩欧美一及在线播放| 久久99爰这里有精品国产| 国产伦精品一区三区视频| 可以免费看毛片的网站| 欧美另类videosbestsex视频 | 欧美激情一区二区三区中文字幕| 成人在激情在线视频| 欧美电影免费看大全| 欧美国产日韩一区二区三区| 国产a免费观看| 国产精品免费久久|