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

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

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

    敬的世界

    常用鏈接

    統計

    最新評論

    java萬年歷

    來源:http://www.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)  編輯  收藏


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


    網站導航:
     
    主站蜘蛛池模板: 91在线视频免费观看| 91精品成人免费国产片| 69式国产真人免费视频| 午夜亚洲av永久无码精品| 亚洲第一区香蕉_国产a| 亚洲欧美日韩中文高清www777| 亚欧洲精品在线视频免费观看| 18禁网站免费无遮挡无码中文| 亚洲国产精品一区二区三区久久| 亚洲欧洲国产成人精品| 一级毛片a女人刺激视频免费| 无码国产精品一区二区免费式影视 | 亚洲人JIZZ日本人| 亚洲私人无码综合久久网| 成人A毛片免费观看网站| 成人免费看黄20分钟| 久久亚洲AV午夜福利精品一区 | 国内少妇偷人精品视频免费| 无码人妻精品一二三区免费| 在线观看亚洲av每日更新| 亚洲精品国产综合久久久久紧| 久久精品免费电影| 亚洲国产日韩成人综合天堂| 亚洲伦理中文字幕| 最近国语视频在线观看免费播放| 国产成人免费片在线观看| 亚洲一级毛片免费看| a级精品九九九大片免费看| 国产成人涩涩涩视频在线观看免费| 中文字幕亚洲精品资源网| 亚美影视免费在线观看| 国产成人啪精品视频免费网| 亚洲国产模特在线播放| 成全动漫视频在线观看免费高清版下载| 国产无遮挡吃胸膜奶免费看视频| 亚洲欧洲日本国产| 久久国产免费观看精品| 国产亚洲精久久久久久无码AV| 亚洲av日韩精品久久久久久a| 无遮免费网站在线入口| 青青草原精品国产亚洲av|