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

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

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

    敬的世界

    常用鏈接

    統計

    最新評論

    java萬年歷

    來源:http://m.tkk7.com/soddabao/archive/2006/12/31/91098.html?

    ???? 昨天網上看到別人blog里面寫的自己做的萬年歷不錯,down下來看看,發現有些地方不妥。
    ???? 1。在java中獲取指定年月的天數居然還用閏年來判斷,感覺這個人java肯定用的不精。GregorianCalendar類里面有個方法
    ????? isLeapYear(int?year)
    ??????????確定給定的年份是否為閏年。
    ? 用這個不就ok么?還像在c中那樣做判斷,能不能被4整除,被4整除不被100整除的。。。。
    ?? 獲取指定年月的天數
    ????????Date?date?=?new?Date(year_log,?month_log?+?1,?1);?//?now
    ????????Calendar?cal?=?Calendar.getInstance();
    ????????cal.setTime(date);
    ????????cal.add(Calendar.MONTH,?
    -1);?//?前個月
    ????????month_day_score?=?cal.getActualMaximum(Calendar.DAY_OF_MONTH);//?最后一天
    ? 2。對java中的ActionEvent不熟,不知道JComboBox等什么時候應該觸發什么event。
    ? 3。對線程理解不好。
    11.bmp
    我把改進后的java代碼貼上來,大家看看,里面肯定還有不足之處。
    主類:MainFrame
    package?clock;

    /**
    ?*?MainFrame.java
    ?*?Summary?萬年歷主類
    ?*?Created?on
    ?*?
    @author
    ?*?remark?如有改動請發一份代碼給我,郵箱wsh.grxx@163.com
    ?
    */


    import?java.awt.BorderLayout;
    import?java.awt.Color;
    import?java.awt.GridLayout;
    import?java.awt.Toolkit;
    import?java.awt.event.ActionEvent;
    import?java.awt.event.ActionListener;
    import?java.sql.Date;
    import?java.util.Calendar;

    import?javax.swing.JComboBox;
    import?javax.swing.JFrame;
    import?javax.swing.JLabel;
    import?javax.swing.JPanel;


    class?MainFrame?extends?JFrame?{
    ????
    /**
    ?????*?
    ?????
    */

    ????
    private?static?final?long?serialVersionUID?=?1L;
    ????JPanel?panel?
    =?new?JPanel(new?BorderLayout());
    ????JPanel?panel1?
    =?new?JPanel();
    ????JPanel?panel2?
    =?new?JPanel(new?GridLayout(7,?7));
    ????JPanel?panel3?
    =?new?JPanel();
    ????JLabel[]?label?
    =?new?JLabel[49];
    ????JLabel?y_label?
    =?new?JLabel("年份");
    ????JLabel?m_label?
    =?new?JLabel("月份");
    ????JComboBox?com1?
    =?new?JComboBox();
    ????JComboBox?com2?
    =?new?JComboBox();
    ????
    int?re_year,?re_month;
    ????
    int?x_size,?y_size;
    ????String?year_num;
    ????Calendar?now?
    =?Calendar.getInstance();?//?實例化Calendar

    ????MainFrame()?
    {
    ????????
    super("萬年歷");
    ????????setSize(
    300,?350);
    ????????x_size?
    =?(int)?(Toolkit.getDefaultToolkit().getScreenSize().getWidth());
    ????????y_size?
    =?(int)?(Toolkit.getDefaultToolkit().getScreenSize().getHeight());
    ????????setLocation((x_size?
    -?300)?/?2,?(y_size?-?350)?/?2);
    ????????setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    ????????panel1.add(y_label);
    ????????panel1.add(com1);
    ????????panel1.add(m_label);
    ????????panel1.add(com2);
    ????????
    for?(int?i?=?0;?i?<?49;?i++)?{
    ????????????label[i]?
    =?new?JLabel("",?JLabel.CENTER);//?將顯示的字符設置為居中
    ????????????panel2.add(label[i]);
    ????????}

    ????????panel3.add(
    new?Clock(this));
    ????????panel.add(panel1,?BorderLayout.NORTH);
    ????????panel.add(panel2,?BorderLayout.CENTER);
    ????????panel.add(panel3,?BorderLayout.SOUTH);
    ????????panel.setBackground(Color.white);
    ????????panel1.setBackground(Color.white);
    ????????panel2.setBackground(Color.white);
    ????????panel3.setBackground(Color.white);
    ????????Init();
    ????????com1.addActionListener(
    new?ClockAction());
    ????????com2.addActionListener(
    new?ClockAction());

    ????????setContentPane(panel);
    ????????setVisible(
    true);
    ????????setResizable(
    false);
    ????}


    ????
    class?ClockAction?implements?ActionListener?{
    ????????
    public?void?actionPerformed(ActionEvent?arg0)?{
    ????????????
    int?c_year,?c_month,?c_week;
    ????????????c_year?
    =?Integer.parseInt(com1.getSelectedItem().toString());?//?得到當前所選年份
    ????????????c_month?=?Integer.parseInt(com2.getSelectedItem().toString())?-?1;?//?得到當前月份,并減1,計算機中的月為0-11
    ????????????c_week?=?use(c_year,?c_month);?//?調用函數use,得到星期幾
    ????????????Resetday(c_week,?c_year,?c_month);?//?調用函數Resetday
    ????????}

    ????}

    ????
    ????
    public?void?Init()?{
    ????????
    int?year,?month_num,?first_day_num;
    ????????String?log[]?
    =?{?"",?"",?"",?"",?"",?"",?""?};
    ????????
    for?(int?i?=?0;?i?<?7;?i++)?{
    ????????????label[i].setText(log[i]);
    ????????}

    ????????
    for?(int?i?=?0;?i?<?49;?i?=?i?+?7)?{
    ????????????label[i].setForeground(Color.red);?
    //?將星期日的日期設置為紅色
    ????????}

    ????????
    for?(int?i?=?6;?i?<?49;?i?=?i?+?7)?{
    ????????????label[i].setForeground(Color.green);
    //?將星期六的日期設置為綠色
    ????????}

    ????????
    for?(int?i?=?1;?i?<?10000;?i++)?{
    ????????????com1.addItem(
    ""?+?i);
    ????????}

    ????????
    for?(int?i?=?1;?i?<?13;?i++)?{
    ????????????com2.addItem(
    ""?+?i);
    ????????}

    ????????month_num?
    =?(int)?(now.get(Calendar.MONTH));?//?得到當前時間的月份
    ????????year?=?(int)?(now.get(Calendar.YEAR));?//?得到當前時間的年份
    ????????com1.setSelectedIndex(year?-?1);?//?設置下拉列表顯示為當前年
    ????????com2.setSelectedIndex(month_num);?//?設置下拉列表顯示為當前月
    ????????first_day_num?=?use(year,?month_num);
    ????????Resetday(first_day_num,?year,?month_num);
    ????}


    ????
    public?int?use(int?reyear,?int?remonth)?{
    ????????
    int?week_num;
    ????????now.set(reyear,?remonth,?
    1);?//?設置時間為所要查詢的年月的第一天
    ????????week_num?=?(int)?(now.get(Calendar.DAY_OF_WEEK));//?得到第一天的星期
    ????????return?week_num;
    ????}


    ????@SuppressWarnings(
    "deprecation")
    ????
    public?void?Resetday(int?week_log,?int?year_log,?int?month_log)?{
    ????????
    int?month_day_score;?//?存儲月份的天數
    ????????int?count;
    ????????month_day_score?
    =?0;
    ????????count?
    =?1;

    ????????Date?date?
    =?new?Date(year_log,?month_log?+?1,?1);?//?now
    ????????Calendar?cal?=?Calendar.getInstance();
    ????????cal.setTime(date);
    ????????cal.add(Calendar.MONTH,?
    -1);?//?前個月
    ????????month_day_score?=?cal.getActualMaximum(Calendar.DAY_OF_MONTH);//?最后一天

    ????????
    for?(int?i?=?7;?i?<?49;?i++)?{?//?初始化標簽
    ????????????label[i].setText("");
    ????????}

    ????????week_log?
    =?week_log?+?6;?//?將星期數加6,使顯示正確
    ????????month_day_score?=?month_day_score?+?week_log;
    ????????
    for?(int?i?=?week_log;?i?<?month_day_score;?i++,?count++)?{
    ????????????label[i].setText(count?
    +?"");
    ????????}

    ????}


    ????
    public?static?void?main(String[]?args)?{
    ????????JFrame.setDefaultLookAndFeelDecorated(
    true);
    ????????
    new?MainFrame();
    ????}

    }

    顯示時間的類:Clock
    package?clock;

    /**
    ?*?Clock.java
    ?*?Summary?數字時間顯示
    ?*?Created?on
    ?*?
    @author
    ?*?remark?
    ?
    */


    import?java.awt.Canvas;
    import?java.awt.Color;
    import?java.awt.Font;
    import?java.awt.Graphics;
    import?java.text.SimpleDateFormat;
    import?java.util.Calendar;
    class?Clock?extends?Canvas?implements?Runnable{
    ????
    /**
    ?????*?
    ?????
    */

    ????
    private?static?final?long?serialVersionUID?=?3660124045489727166L;
    ????MainFrame?mf;
    ????Thread?t;
    ????String?time;
    ????
    public?Clock(MainFrame?mf){
    ????
    this.mf=mf;
    ????setSize(
    280,40);
    ????setBackground(Color.white);
    ????t
    =new?Thread(this);????????????????//實例化線程
    ????t.start();????????????????????????//調用線程
    ????}

    ????
    public?void?run(){
    ????
    while(true){
    ????
    try{
    ????Thread.sleep(
    1000);????????????????????//休眠1秒鐘
    ????}
    catch(InterruptedException?e){
    ????System.out.println(
    "異常");
    ????}

    ????
    this.repaint(100);
    ????}

    ????}

    ????
    public?void?paint(Graphics?g){
    ????Font?f
    =new?Font("宋體",Font.BOLD,16);
    ????SimpleDateFormat?SDF
    =new?SimpleDateFormat("yyyy'年'MM'月'dd'日'HH:mm:ss");//格式化時間顯示類型
    ????Calendar?now=Calendar.getInstance();
    ????time
    =SDF.format(now.getTime());????????//得到當前日期和時間
    ????g.setFont(f);
    ????g.setColor(Color.orange);
    ????g.drawString(time,
    45,25);
    ????}

    }

    posted on 2008-10-25 16:51 picture talk 閱讀(252) 評論(0)  編輯  收藏


    只有注冊用戶登錄后才能發表評論。


    網站導航:
     
    主站蜘蛛池模板: 久久亚洲综合色一区二区三区| 亚洲国产一区二区视频网站| 久久亚洲精品成人AV| 最近更新免费中文字幕大全| 国产亚洲精品不卡在线| 国产在线国偷精品免费看| 在线精品亚洲一区二区小说| 鲁丝片一区二区三区免费 | 青青免费在线视频| 国产成人免费a在线视频app| 阿v免费在线观看| 国产成人精品日本亚洲专区| 中文字幕无码免费久久9一区9| 国产亚洲综合一区柠檬导航| 久久国产乱子伦精品免费一| 亚洲人成电影院在线观看 | 亚洲国产午夜中文字幕精品黄网站 | 亚洲熟妇av一区二区三区下载| 99久久99久久免费精品小说| 亚洲三级中文字幕| 国产精品jizz在线观看免费| 国产V片在线播放免费无码| 亚洲免费在线视频| 国语成本人片免费av无码| 曰批全过程免费视频观看免费软件| 国产精品亚洲综合一区| 182tv免费观看在线视频 | 亚欧乱色国产精品免费视频| 亚洲AV无码乱码在线观看富二代 | 亚洲Av无码国产情品久久| 免费无码又爽又刺激网站直播| 亚洲综合区图片小说区| 日韩精品视频免费网址| 中文字幕乱码系列免费| 亚洲卡一卡2卡三卡4麻豆| 亚洲 小说区 图片区 都市| 99re免费在线视频| 精品特级一级毛片免费观看| 久久久久亚洲精品成人网小说 | 亚洲精品乱码久久久久久下载| 免费鲁丝片一级在线观看|