Boy.java布局与日历

 

import java.util.*;

import java.awt.*;

import java.awt.event.*;

import java.applet.*;

public class Boy extends Applet implements ActionListener

{                         

     Label a[]=new Label[42];

     Button titleName[]=new Button[7];

     String name[]={"星期日","星期一","星期二","星期三", "星期四","星期五","星期六"};

     Button  nextMonth,previousMonth;

     int year=2005,month=1;

     CalendarBean calendar;

     Label showMessage=new Label("",Label.CENTER);

     public void init()

     {

super ("小程序查看器:Boy.class");

int hgap=5,vap=5;

setLayout(new BorderLayout(5,5));        //将Java Applet的布局设置为BorderLayout布局。

 

        Panel pCenter=new Panel();
pCenter.setLayout(new GridLayout(7,7));  //将pCenter的布局设置为7行7列的GridLayout 布局。

 

        for(int i=0;i<7;i++)

        {

          titleName[i]=new Button(name[i]);

         pCenter.add(new Button(titleName[i]));        //pCenter添加组件titleName[i]。

        }

        for(int i=0;i<42;i++)

        {

           a[i]=new Label("",Label.CENTER);

           pCenter.add(new Button(a[i]));                  //pCenter添加组件a[i]。

        }

        calendar=new  CalendarBean();

        year=2005;

        calendar.setYear(year);

        calendar.setMonth(month);

        String day[]=calendar.getCalendar();

        for(int i=0;i<42;i++)

        {

           a[i].setText(day[i]);

        }

        nextMonth=new Button("下月");

        previousMonth=new Button("上月");

        nextMonth.addActionListener(this);

        previousMonth.addActionListener(this);

        Panel pNorth=new Panel(),

              pSouth=new Panel();

        pNorth.add(previousMonth);

        pNorth.add(nextMonth);

        pSouth.add(showMessage);

        showMessage.setText("日历:"+calendar.getYear()+"年"+ calendar.getMonth()+"月" );

        ScrollPane scrollPane=new ScrollPane();

        scrollPane.add(pCenter);

    BtnC=new Button(scrollPane); add (scrollPane,Btnc);

                                         // Java Applet添加scrollPane在中心区域。

    BtnN=new Button(pNorth); add (pNorth,Btnc);

                                      // Java Applet添加pNorth 在北面区域。

    BtnS=new Button(pSouth); add (pSouth,BtnS);

                                // Java Applet添加pSouth 在南区域。

     }

     public void actionPerformed(ActionEvent e)

     {

        if(e.getSource()==nextMonth)

        {

          month=month+1;

          if(month>12)

              month=1;

          calendar.setMonth(month);

          String day[]=calendar.getCalendar();

          for(int i=0;i<42;i++)

           {

              a[i].setText(day[i]);

           }

        }

       else if(e.getSource()==previousMonth)

        {

          month=month-1;

          if(month<1)

              month=12;

          calendar.setMonth(month);

          String day[]=calendar.getCalendar();

           for(int i=0;i<42;i++)

           {

              a[i].setText(day[i]);

           }

        }

       showMessage.setText("日历:"+calendar.getYear()+"年"+calendar.getMonth()+"月" );

     }

 }

class CalendarBean

 { 

   String  day[];

   int year=2005,month=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 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;

   }

}

 

不知道你这个问题是否已经解决, 如果还没有解决的话:

如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 以帮助更多的人 ^-^