import java.awt.*;import java.awt.event.*;import javax.swing.*;import javax.swing.border.*;importjavax.swing.JFrame;public class CalendarFrame extends JFrame implementsActionListener {
JLabel labelDay[]= new JLabel[42];
JButton titleName[]= new JButton[7];
JTextField m_monster= new JTextField("输入年份:",12);
String name[]= {"日","一","二","三","四","五","六"};
JButton nextMonth,previousMonth;
CalendarBean calendar;
JLabel showMessage= new JLabel("2",JLabel.CENTER);int year=2011,month=2;publicCalendarFrame(){
JPanel pCenter= newJPanel();
pCenter.setLayout(new GridLayout(7,7));for(int i=0;i<7;i++){
titleName[i]= newJButton(name[i]);
titleName[i].setBorder(newSoftBevelBorder(BevelBorder.RAISED));
pCenter.add(titleName[i]);
}for(int i=0;i<42;i++){
labelDay[i]= new JLabel("",JLabel.CENTER);
labelDay[i].setBorder(newSoftBevelBorder(BevelBorder.LOWERED));
pCenter.add(labelDay[i]);
}
calendar= newCalendarBean();
nextMonth= new JButton("下月");
previousMonth= new JButton("上月");
nextMonth.addActionListener(this);
previousMonth.addActionListener(this);
m_monster.addActionListener(newActionListener() {
@Overridepublic voidactionPerformed(ActionEvent e) {inty;
String str=e.getActionCommand();
y=Integer.parseInt(str);
year=y;
setYearAndMonth(y,month);
}
});
JPanel pNorth= newJPanel(),
pSouth= newJPanel();
pNorth.add(previousMonth);
pNorth.add(nextMonth);
pSouth.add(showMessage);
pSouth.add(m_monster);
add(pCenter,BorderLayout.CENTER);
add(pNorth,BorderLayout.NORTH);
add(pSouth,BorderLayout.SOUTH);
setYearAndMonth(year,month);
setDefaultCloseOperation(DISPOSE_ON_CLOSE);
}public void setYearAndMonth(int y,intm) {
calendar.setYear(y);
calendar.setMonth(m);
String day[]=calendar.getCalendar();for(int i=0;i<42;i++){
labelDay[i].setText(day[i]);
showMessage.setText("日历:"+calendar.getYear()+"年"+calendar.getMonth()+"月");
}
}public voidactionPerformed(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++){
labelDay[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++){
labelDay[i].setText(day[i]);
}
}
showMessage.setText("日历"+calendar.getYear()+"年"+calendar.getMonth()+"月");
}
}