Java小日曆

來源:互聯網
上載者:User

標籤:java   日曆   

自己寫的一個小小日曆,運行程式是柯自動定位到當前年月日,當點擊下個月按鈕是會定位到下個月的這一天,就是說天數不會變。當在一個月中點擊某一天時,下面的時間也會隨時變化。

import java.util.Calendar;public class CalendarMainClass {   public static void main(String args[]) {      CalendarFrame frame=new CalendarFrame();      frame.setBounds(100,100,360,300);      frame.setVisible(true);      frame. setYearAndMonth((Calendar.getInstance()).get(Calendar.YEAR),(Calendar.getInstance()).get(Calendar.MONTH)+1);   }}import java.util.*;import java.awt.*;import java.awt.event.*;import javax.swing.*;import javax.swing.border.*;public class CalendarFrame extends JFrame implements ActionListener, MouseListener{     /**     *      */    private static final long serialVersionUID = 1L;     JLabel labelDay[]=new JLabel[42];     JButton titleName[]=new JButton[7];     JLabel labelCom=new JLabel();//跟蹤選中的日期     String name[]={"日","一","二","三", "四","五","六"};     JButton nextMonth,previousMonth;     CalendarBean calendar;     JLabel showMessage=new JLabel("",JLabel.CENTER);      int year=2011,month=2;     public CalendarFrame() {        JPanel pCenter=new JPanel();        pCenter.setBackground(Color.white);        pCenter.setLayout(new GridLayout(7,7)); //將pCenter的布局設定為7行7列的GridLayout 布局。        for(int i=0;i<7;i++) {           titleName[i]=new JButton(name[i]);            titleName[i].setBorder(new SoftBevelBorder(BevelBorder.RAISED));           pCenter.add(titleName[i]);        }        for(int i=0;i<42;i++) {            labelDay[i]=new JLabel("",JLabel.CENTER);            //labelDay[i].setBorder(new EtchedBorder(EtchedBorder.RAISED));            labelDay[i].setBorder(BorderFactory.createLineBorder (Color.orange, 1));           pCenter.add(labelDay[i]);//pCenter添加組件labelDay[i]。        }        calendar=new  CalendarBean();        nextMonth=new JButton("下月");        previousMonth=new JButton("上月");        nextMonth.addActionListener(this);        previousMonth.addActionListener(this);        JPanel pNorth=new JPanel(),              pSouth=new JPanel();        pCenter.setBackground(Color.white);        pNorth.setBackground(Color.white);        pSouth.setBackground(Color.white);        pNorth.add(previousMonth);        pNorth.add(nextMonth);        pSouth.add(showMessage);        add(pCenter,BorderLayout.CENTER);         add(pNorth,BorderLayout.NORTH); // 視窗添加pNorth 在北面地區        add(pSouth ,BorderLayout.SOUTH); // 視窗添加pSouth 在南地區。        //setYearAndMonth(year,month);        setDefaultCloseOperation(DISPOSE_ON_CLOSE);     }     public void setYearAndMonth(int y,int m) {         year=y;         month=m;         calendar.setYear(y);         calendar.setMonth(m);                calendar.setDay((Calendar.getInstance()).get(Calendar.DAY_OF_MONTH));         String day[]=calendar.getCalendar();         for(int i=0;i<42;i++)          {                 labelDay[i].setText(day[i]);              labelDay[i].addMouseListener(this);//對每個標籤監聽             if(day[i]!=null&&day[i].equals(String.valueOf(calendar.getDay())))//系統日期為黃色             {                 labelDay[i].setOpaque(true); // 標籤設定不透明才能設定顏色                           labelDay[i].setBackground(Color.orange);                 labelCom= labelDay[i];//點亮的標籤             }         }         showMessage.setText("日曆:"+calendar.getYear()+"年"+ calendar.getMonth()+"月"+ calendar.getDay()+"日");     }     public void actionPerformed(ActionEvent e) {        if(e.getSource()==nextMonth) {          month=month+1;          if(month>12)          {                month=1;                year=year+1;          }                    calendar.setMonth(month);          calendar.setYear(year);          String day[]=calendar.getCalendar();          for(int i=0;i<42;i++) {              labelDay[i].setOpaque(false);                   }          for(int i=0;i<42;i++) {            labelDay[i].setText(day[i]);                  labelDay[i].addMouseListener(this);            if(day[i]!=null&&day[i].equals(String.valueOf(calendar.getDay())))            {                         labelDay[i].setOpaque(true);                        labelDay[i].setBackground(Color.orange);              labelCom= labelDay[i];             }          }        }        else if(e.getSource()==previousMonth) {          month=month-1;          if(month<1)          {              month=12;              year=year-1;          }          calendar.setMonth(month);          calendar.setYear(year);          String day[]=calendar.getCalendar();          for(int i=0;i<42;i++) {              labelDay[i].setOpaque(false);                   }          for(int i=0;i<42;i++)          {              labelDay[i].setText(day[i]);                labelDay[i].addMouseListener(this);              if(day[i]!=null&&day[i].equals(String.valueOf(calendar.getDay())))             {                 labelDay[i].setOpaque(true);                                labelDay[i].setBackground(Color.orange);                 labelCom= labelDay[i];             }          }                  }        showMessage.setText("日曆:"+calendar.getYear()+"年"+ calendar.getMonth()+"月"+ calendar.getDay()+"日");     }    @Override    public void mouseClicked(MouseEvent e) {        // TODO Auto-generated method stub    }    @Override    public void mousePressed(MouseEvent e) {        JLabel i=(JLabel)e.getSource();        if(i.getText()!=null)        {            labelCom.setOpaque(false);            i.setOpaque(true);             i.setBackground(Color.orange);                showMessage.setText("日曆:"+calendar.getYear()+"年"+ calendar.getMonth()+"月"+Integer.parseInt(i.getText())+"日");            labelCom=i;            //重新整理介面            for(int j=0;j<42;j++)            {               labelDay[j].repaint();            }        }       }    @Override    public void mouseReleased(MouseEvent e) {        // TODO Auto-generated method stub    }    @Override    public void mouseEntered(MouseEvent e) {        // TODO Auto-generated method stub    }    @Override    public void mouseExited(MouseEvent e) {        // TODO Auto-generated method stub    }}import java.util.Calendar;public class CalendarBean {   String  day[];   int year=2005,month=0;   int DDay=0;   public void setYear(int year) {       this.year=year;   }   public int getYear() {       return year;    }   public void setMonth(int month) {       this.month=month;   }   public int getMonth() {       return month;    }   public void setDay(int DDay) {       this.DDay=DDay;   }   public int getDay() {       return DDay;    }   public String[] getCalendar() {       String a[]=new String[42];            Calendar 日曆=Calendar.getInstance();//獲得系統時間       日曆.set(year,month-1,1); //設定指定時間                   int 星期幾=日曆.get(Calendar.DAY_OF_WEEK)-1;       int day=0;       if(month==1||month==3||month==5||month==7||month==8||month==10||month==12)          day=31;       if(month==4||month==6||month==9||month==11)          day=30;       if(month==2) {         if(((year%4==0)&&(year%100!=0))||(year%400==0))            day=29;         else            day=28;       }       for(int i=星期幾,n=1;i<星期幾+day;i++) {          a[i]=String.valueOf(n) ;          n++;       }         return a;   } } 


著作權聲明:本文為博主原創文章,未經博主允許不得轉載。

Java小日曆

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.