<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
    研究一下  回復  更多評論
      
    主站蜘蛛池模板: 亚洲国产成人久久综合一区77| 亚洲最大免费视频网| 国产精品免费一级在线观看| 久久精品亚洲AV久久久无码| 国产成人免费高清激情明星| 亚洲欧洲日韩在线电影| 成年人视频免费在线观看| 亚洲二区在线视频| 91黑丝国产线观看免费| 亚洲91精品麻豆国产系列在线 | 亚洲成_人网站图片| 又黄又爽又成人免费视频| 亚洲婷婷第一狠人综合精品| 在线v片免费观看视频| 中文字幕在线日亚洲9| 色吊丝最新永久免费观看网站 | 麻豆国产入口在线观看免费 | 亚洲成AV人片天堂网无码| 毛片在线全部免费观看| 亚洲狠狠久久综合一区77777| 5555在线播放免费播放| 亚洲 欧洲 日韩 综合在线| 免费的涩涩视频在线播放| 日韩在线观看免费| 亚洲国产三级在线观看| 99re6免费视频| 亚洲日韩中文字幕一区| 亚洲精品岛国片在线观看| 国产成人精品一区二区三区免费| 亚洲最新中文字幕| 伊人久久亚洲综合影院| 成人av片无码免费天天看| 亚洲天堂一区二区三区四区| 日产乱码一卡二卡三免费| 中文字幕免费在线播放| 亚洲综合色丁香麻豆| 免费看国产一级特黄aa大片| 在线成人精品国产区免费| 亚洲不卡中文字幕| 中文字幕在亚洲第一在线| 免费在线视频你懂的|