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

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

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

    love fish大鵬一曰同風(fēng)起,扶搖直上九萬里

    常用鏈接

    統(tǒng)計

    積分與排名

    friends

    link

    最新評論

    反射妙用:超強通用年月日樹 (轉(zhuǎn))

    在實際項目中,大家都要都有很多需要通過日期進(jìn)行管理的數(shù)據(jù),比如單據(jù),考勤,日志等等。。。??? 這些數(shù)據(jù)對象都有一個共同的特點就是有一個字段是日期型。
    ???? 于是我就利用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-12 14:44 liaojiyong 閱讀(285) 評論(0)  編輯  收藏 所屬分類: Java

    主站蜘蛛池模板: 国产乱人免费视频| 中文字幕无码成人免费视频| 日本二区免费一片黄2019| 亚洲精品456在线播放| 无码av免费网站| 亚洲日本中文字幕| 久久免费看少妇高潮V片特黄| 亚洲AV永久无码精品一百度影院| 两个人看的www高清免费观看| 在线观看午夜亚洲一区| 国产男女爽爽爽免费视频| 亚洲午夜久久久久久久久电影网| 人妻在线日韩免费视频| 亚洲av女电影网| 中文字幕在线观看免费视频| 亚洲一级在线观看| 日韩a在线观看免费观看| 无人视频免费观看免费视频| 中文字幕亚洲天堂| 日韩电影免费观看| 亚洲国产中文在线二区三区免| 女人18毛片a级毛片免费| 免费在线观看自拍性爱视频| 亚洲小说区图片区另类春色| 蜜桃成人无码区免费视频网站 | 精品久久久久久久免费人妻| 久久久亚洲精华液精华液精华液| 免费国产成人午夜电影| 成人免费无码H在线观看不卡| 亚洲精品美女在线观看| 日日夜夜精品免费视频| a级黄色毛片免费播放视频| 337p欧洲亚洲大胆艺术| 在线免费视频一区二区| 久久国产精品免费一区二区三区| 亚洲综合无码一区二区| 日韩免费视频网站| 久久免费观看国产精品| 亚洲精品成a人在线观看夫| 精品亚洲永久免费精品| 免费无码又爽又刺激高潮|