<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)  編輯  收藏


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


    網站導航:
     
    主站蜘蛛池模板: 免费无码A片一区二三区| 一级视频免费观看| 亚洲精品视频在线观看免费| 亚洲性在线看高清h片| aa级女人大片喷水视频免费| 亚洲精品无码久久千人斩| 成人妇女免费播放久久久| 亚洲性猛交XXXX| 无码成A毛片免费| 亚洲人成在线精品| 无码人妻精品一二三区免费| 亚洲一区二区三区写真| 国产jizzjizz视频全部免费| 一级毛片a女人刺激视频免费| 免费一级黄色毛片| 你好老叔电影观看免费| 久久久久亚洲AV无码专区首JN| 五月婷婷综合免费| 337P日本欧洲亚洲大胆艺术图| 亚洲日韩人妻第一页| 一区二区三区四区免费视频 | 免费人成大片在线观看播放电影| 波多野结衣视频在线免费观看| 一个人免费观看日本www视频| 亚洲精品国偷自产在线| 最近免费中文字幕mv电影| 亚洲午夜无码毛片av久久京东热| 亚洲AV无码乱码在线观看牲色| 国产在线观a免费观看| 亚洲嫩草影院在线观看| 国产精品视频免费一区二区三区| yellow视频免费看| 亚洲欧洲日韩综合| 免费大片在线观看网站| 7m凹凸精品分类大全免费| 国产精品自拍亚洲| 亚洲网址在线观看你懂的| 在线观看视频免费国语| 青青青国产手机频在线免费观看 | 99re6在线视频精品免费下载| 怡红院亚洲红怡院在线观看|