<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)

    最新隨筆

    搜索

    •  

    積分與排名

    • 積分 - 525157
    • 排名 - 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 交口稱贊 閱讀(2331) 評論(2)  編輯  收藏 所屬分類: Eclipse RCP SWT

    FeedBack:
    # re: 反射妙用:超強通用年月日樹 2007-01-09 13:09 JAVA虛擬機
    頂  回復  更多評論
      
    # re: 反射妙用:超強通用年月日樹 2007-01-10 01:45 zhuangxulin
    研究一下  回復  更多評論
      
    主站蜘蛛池模板: 亚洲日韩在线第一页| 精品久久久久久久免费加勒比| 亚洲精品免费在线| 成人国产网站v片免费观看 | 亚洲春色在线视频| 黄色网址免费在线观看| 日韩精品电影一区亚洲| 亚洲精品无码永久在线观看 | 成在人线av无码免费高潮喷水| 亚洲精品高清在线| 一级人做人爰a全过程免费视频| 69视频在线观看免费| 亚洲免费在线播放| 亚洲制服丝袜一区二区三区| 91av免费观看| 国产精品亚洲精品| 天黑黑影院在线观看视频高清免费| 桃子视频在线观看高清免费完整| 亚洲国产成人九九综合| 毛片大全免费观看| 国产亚洲午夜高清国产拍精品| 亚洲综合色7777情网站777| 黄色免费网站网址| 亚洲精品少妇30p| 日韩免费码中文在线观看| 亚洲中文字幕视频国产| 中文字幕免费观看视频| 无码久久精品国产亚洲Av影片| 思思re热免费精品视频66| 亚洲色偷精品一区二区三区| 亚洲成av人片一区二区三区| 亚洲一卡2卡3卡4卡5卡6卡 | 亚洲国产精品无码专区影院| 91福利免费视频| 亚洲一区二区观看播放| 丁香五月亚洲综合深深爱| 亚欧免费无码aⅴ在线观看| 国产精品亚洲午夜一区二区三区| 亚洲国产黄在线观看 | 思思99re66在线精品免费观看| 91在线精品亚洲一区二区|