<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    隨筆 - 119  文章 - 3173  trackbacks - 0
    <2007年1月>
    31123456
    78910111213
    14151617181920
    21222324252627
    28293031123
    45678910

    交友莫獨酒,茅臺西鳳游。
    口干古井貢,心徜洋河流。
    稱多情杜康,趟無量雙溝。
    贊中華巍巍,無此不銷愁。

    常用鏈接

    留言簿(68)

    隨筆分類(136)

    隨筆檔案(122)

    最新隨筆

    搜索

    •  

    積分與排名

    • 積分 - 527135
    • 排名 - 93

    最新評論

    ????? 在實際項目中,大家都要都有很多需要通過日期進行管理的數據,比如單據,考勤,日志等等。。。??? 這些數據對象都有一個共同的特點就是有一個字段是日期型。
    ???? 于是我就利用JAVA的反射機制,寫了一個通用年月日樹。
    是用在RCP插件項目中的。稍加改造也能用到WEB項目中,核心算法不變。

    ??1?import?java.lang.reflect.Field;
    ??2?import?java.util.Calendar;
    ??3?import?java.util.Date;
    ??4?import?java.util.List;
    ??5?import?org.eclipse.swt.SWT;
    ??6?import?org.eclipse.swt.graphics.Image;
    ??7?import?org.eclipse.swt.widgets.Tree;
    ??8?import?org.eclipse.swt.widgets.TreeItem;
    ??9?
    ?10?public?class?GetYMDTree?{
    ?11?
    ?12?????private?static?Image?nodeImg?=?Activator.getImageDescriptor("icons/node.png").createImage();
    ?13?
    ?14?????private?static?Image?yearImg?=?Activator.getImageDescriptor("icons/year.png").createImage();
    ?15?
    ?16?????private?static?Image?monthImg?=?Activator.getImageDescriptor("icons/month.png").createImage();
    ?17?
    ?18?????private?static?Image?dayImg?=?Activator.getImageDescriptor("icons/day.png").createImage();
    ?19?
    ?20?????
    ?21?
    ?22?????public?static?void?buildTree(List?list,?TreeItem?tree,?String?dateField,?String?nameField)?{
    ?23?????????tree.removeAll();
    ?24?????????if?(list?!=?null?&&?list.size()?>?0)?{
    ?25?????????????String?year?=?"";
    ?26?????????????String?month?=?"";
    ?27?????????????String?day?=?"";
    ?28?????????????Object?objt?=?list.get(0);
    ?29?????????????Field?dateF?=?null;
    ?30?????????????Field?nameF?=?null;
    ?31?????????????try?{
    ?32?????????????????dateF?=?objt.getClass().getDeclaredField(dateField);
    ?33?????????????????dateF.setAccessible(true);
    ?34?????????????????nameF?=?objt.getClass().getDeclaredField(nameField);
    ?35?????????????????nameF.setAccessible(true);
    ?36?????????????}?catch?(SecurityException?e)?{
    ?37?????????????????e.printStackTrace();
    ?38?????????????????tree.removeAll();
    ?39?????????????????return;
    ?40?????????????}?catch?(NoSuchFieldException?e)?{
    ?41?????????????????e.printStackTrace();
    ?42?????????????????tree.removeAll();
    ?43?????????????????return;
    ?44?????????????}
    ?45?????????????for?(Object?obj?:?list)?{
    ?46?????????????????Calendar?calendar?=?Calendar.getInstance();
    ?47?????????????????String?name?=?null;
    ?48?????????????????try?{
    ?49?????????????????????calendar.setTime((Date)?dateF.get(obj));
    ?50?????????????????????name?=?(String)?nameF.get(obj);
    ?51?????????????????}?catch?(IllegalArgumentException?e)?{
    ?52?????????????????????e.printStackTrace();
    ?53?????????????????????tree.removeAll();
    ?54?????????????????????return;
    ?55?????????????????}?catch?(IllegalAccessException?e)?{
    ?56?????????????????????e.printStackTrace();
    ?57?????????????????????tree.removeAll();
    ?58?????????????????????return;
    ?59?????????????????}
    ?60?????????????????if?(year.equals(Integer.toString(calendar.get(Calendar.YEAR))))?{
    ?61?????????????????????if?(month.equals(Integer.toString(calendar.get(Calendar.MONTH)?+?1)))?{
    ?62?????????????????????????if?(day.equals(Integer.toString(calendar.get(Calendar.DATE))))?{
    ?63?????????????????????????????TreeItem?et?=?new?TreeItem(tree.getItem(tree.getItemCount()?-?1).getItem(
    ?64?????????????????????????????????????tree.getItem(tree.getItemCount()?-?1).getItemCount()?-?1)
    ?65?????????????????????????????????????.getItem(
    ?66?????????????????????????????????????????????tree.getItem(tree.getItemCount()?-?1).getItem(
    ?67?????????????????????????????????????????????????????tree.getItem(tree.getItemCount()?-?1).getItemCount()?-?1)
    ?68?????????????????????????????????????????????????????.getItemCount()?-?1),?SWT.NONE);
    ?69?????????????????????????????et.setText(name);
    ?70?????????????????????????????et.setData(obj);
    ?71?????????????????????????????et.setImage(nodeImg);
    ?72?????????????????????????}?else?{
    ?73?????????????????????????????day?=?Integer.toString(calendar.get(Calendar.DATE));
    ?74?????????????????????????????TreeItem?dt?=?new?TreeItem(tree.getItem(tree.getItemCount()?-?1).getItem(
    ?75?????????????????????????????????????tree.getItem(tree.getItemCount()?-?1).getItemCount()?-?1),?SWT.NONE);
    ?76?????????????????????????????dt.setText(day);
    ?77?????????????????????????????dt.setImage(dayImg);
    ?78?????????????????????????????dt.setData(day);
    ?79?????????????????????????????TreeItem?et?=?new?TreeItem(dt,?SWT.NONE);
    ?80?????????????????????????????et.setText(name);
    ?81?????????????????????????????et.setData(obj);
    ?82?????????????????????????????et.setImage(nodeImg);
    ?83?????????????????????????}
    ?84?????????????????????}?else?{
    ?85?????????????????????????month?=?Integer.toString(calendar.get(Calendar.MONTH)?+?1);
    ?86?????????????????????????day?=?Integer.toString(calendar.get(Calendar.DATE));
    ?87?????????????????????????TreeItem?mt?=?new?TreeItem(tree.getItem(tree.getItemCount()?-?1),?SWT.NONE);
    ?88?????????????????????????mt.setText(month);
    ?89?????????????????????????mt.setImage(monthImg);
    ?90?????????????????????????mt.setData(month);
    ?91?????????????????????????mt.setExpanded(true);
    ?92?????????????????????????TreeItem?dt?=?new?TreeItem(mt,?SWT.NONE);
    ?93?????????????????????????dt.setText(day);
    ?94?????????????????????????dt.setImage(dayImg);
    ?95?????????????????????????dt.setData(day);
    ?96?????????????????????????TreeItem?et?=?new?TreeItem(dt,?SWT.NONE);
    ?97?????????????????????????et.setText(name);
    ?98?????????????????????????et.setData(obj);
    ?99?????????????????????????et.setImage(nodeImg);
    100?????????????????????}
    101?????????????????}?else?{
    102?????????????????????year?=?Integer.toString(calendar.get(Calendar.YEAR));
    103?????????????????????month?=?Integer.toString(calendar.get(Calendar.MONTH)?+?1);
    104?????????????????????day?=?Integer.toString(calendar.get(Calendar.DATE));
    105?????????????????????TreeItem?yt?=?new?TreeItem(tree,?SWT.NONE);
    106?????????????????????yt.setText(year);
    107?????????????????????yt.setImage(yearImg);
    108?????????????????????yt.setData(year);
    109?????????????????????TreeItem?mt?=?new?TreeItem(yt,?SWT.NONE);
    110?????????????????????mt.setText(month);
    111?????????????????????mt.setImage(monthImg);
    112?????????????????????mt.setData(month);
    113?????????????????????mt.setExpanded(true);
    114?????????????????????TreeItem?dt?=?new?TreeItem(mt,?SWT.NONE);
    115?????????????????????dt.setText(day);
    116?????????????????????dt.setImage(dayImg);
    117?????????????????????dt.setData(day);
    118?????????????????????TreeItem?et?=?new?TreeItem(dt,?SWT.NONE);
    119?????????????????????et.setText(name);
    120?????????????????????et.setData(obj);
    121?????????????????????et.setImage(nodeImg);
    122?????????????????????yt.setExpanded(true);
    123?????????????????}
    124?????????????}
    125?????????}
    126?????}
    127?
    128?
    129?
    130?????public?static?Image?getDayImg()?{
    131?????????return?dayImg;
    132?????}
    133?
    134?
    135?
    136?????public?static?void?setDayImg(Image?dayImg)?{
    137?????????GetYMDTree.dayImg?=?dayImg;
    138?????}
    139?
    140?
    141?
    142?????public?static?Image?getMonthImg()?{
    143?????????return?monthImg;
    144?????}
    145?
    146?
    147?
    148?????public?static?void?setMonthImg(Image?monthImg)?{
    149?????????GetYMDTree.monthImg?=?monthImg;
    150?????}
    151?
    152?
    153?
    154?????public?static?Image?getNodeImg()?{
    155?????????return?nodeImg;
    156?????}
    157?
    158?
    159?
    160?????public?static?void?setNodeImg(Image?nodeImg)?{
    161?????????GetYMDTree.nodeImg?=?nodeImg;
    162?????}
    163?
    164?
    165?
    166?????public?static?Image?getYearImg()?{
    167?????????return?yearImg;
    168?????}
    169?
    170?
    171?
    172?????public?static?void?setYearImg(Image?yearImg)?{
    173?????????GetYMDTree.yearImg?=?yearImg;
    174?????}
    175?}
    176?
    posted on 2007-01-09 10:04 交口稱贊 閱讀(2338) 評論(2)  編輯  收藏 所屬分類: Eclipse RCP SWT

    FeedBack:
    # re: 反射妙用:超強通用年月日樹 2007-01-09 13:09 JAVA虛擬機
    頂  回復  更多評論
      
    # re: 反射妙用:超強通用年月日樹 2007-01-10 01:45 zhuangxulin
    研究一下  回復  更多評論
      
    主站蜘蛛池模板: 日韩免费观看一区| 亚洲爆乳无码一区二区三区| 久久伊人免费视频| 免费国产在线精品一区| 亚洲人成电影在线观看青青| 亚洲毛片αv无线播放一区| 国产色爽女小说免费看| 台湾一级毛片永久免费| 麻豆精品成人免费国产片| 九九全国免费视频| 亚洲AV无码一区二区三区电影 | 国产精品亚洲成在人线| 日本a级片免费看| 国产va免费精品观看精品| 午夜视频在线免费观看| 中国一级毛片免费看视频| 综合偷自拍亚洲乱中文字幕| 亚洲卡一卡二卡乱码新区| 亚洲一卡2卡4卡5卡6卡在线99 | 美美女高清毛片视频黄的一免费| 亚洲成a人不卡在线观看| 亚洲av片劲爆在线观看| 亚洲成AV人片在线观看| 国产偷v国产偷v亚洲高清| 亚洲欧洲∨国产一区二区三区| 国内精品久久久久久久亚洲| 国产乱辈通伦影片在线播放亚洲| 免费国产怡红院在线观看| 国产成人精品高清免费| 免费大香伊蕉在人线国产 | 久久亚洲AV成人无码国产最大| 亚洲色大成WWW亚洲女子| 亚洲七久久之综合七久久| 亚洲国产精品日韩av不卡在线| 亚洲精品无码日韩国产不卡av| 亚洲欧美国产日韩av野草社区| 亚洲AV无码专区在线观看成人| 亚洲Av无码国产一区二区| 国产亚洲精品美女2020久久| 国产亚洲精品美女久久久久久下载| 免费看黄网站在线看|