📄 calendarmainclass.java
字号:
import java.util.Calendar;
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
class CalendarBean
{ int year=2004,month=0,nextDay;
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[6][7];
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;
}
}
nextDay=1;
for(int k=0;k<6;k++)
{ if(k==0)
for(int j=星期几;j<7;j++)
{ a[k][j]=" "+nextDay ;
nextDay++;
}
else
for(int j=0;j<7&&nextDay<=day;j++)
{ a[k][j]=""+nextDay ;
nextDay++;
}
}
return a;
}
}
class CalenderFrame extends JFrame implements ActionListener,ItemListener
{
JComboBox list; //声明下拉列表
JTable table;
Object name[]={ "星期日","星期一","星期二","星期三", "星期四","星期五","星期六"};
JButton nextMonth,previousMonth;
int year=2004,month=5;
CalendarBean calendar;
String rili[][];
JLabel showMessage=new JLabel("",JLabel.CENTER);
JLabel shMessage=new JLabel("",JLabel.CENTER);
JScrollPane scroll;
int s[]={2006,2007,2008};
public CalenderFrame()
{ list=new JComboBox();
list.addItem("2006");
list.addItem("2007");
list.addItem("2008");
list.addItemListener(this); //创建并赋植给下拉列表,并做监听
calendar=new CalendarBean();
calendar.setYear(year);
calendar.setMonth(month);
rili=calendar.getCalendar();
table=new JTable(rili,name);//使用数组rili和name创建table
table.setRowSelectionAllowed(false);
nextMonth=new JButton("下月");
previousMonth=new JButton("上月");
nextMonth.addActionListener(this);
previousMonth.addActionListener(this);
JPanel pNorth=new JPanel(),
pSouth=new JPanel();
pNorth.add(previousMonth);
pNorth.add(nextMonth);
pSouth.add(showMessage);
showMessage.setText("日历:");
pSouth.add(list);
pSouth.add(shMessage);
shMessage.setText("年"+calendar.getMonth()+"月" );//添加下拉列表到面板上。
scroll=new JScrollPane(table);
getContentPane().add(scroll,BorderLayout.CENTER);
getContentPane().add(pNorth,BorderLayout.NORTH);
getContentPane().add(pSouth,BorderLayout.SOUTH);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setBounds(100,100,400,240);
setVisible(true);
validate();
}
public void actionPerformed(ActionEvent e)
{ if(e.getSource()==nextMonth)
{ month=month+1;
if(month>12)
month=1;
calendar.setMonth(month);
rili=calendar.getCalendar();
remove(scroll);
table=new JTable(rili,name);//使用数组rili和name创建table
table.setRowSelectionAllowed(false);
scroll=new JScrollPane(table);
getContentPane().add(scroll,BorderLayout.CENTER);
}
else if(e.getSource()==previousMonth)
{ month=month-1;
if(month<1)
month=12;
calendar.setMonth(month);
rili=calendar.getCalendar();
remove(scroll);
table=new JTable(rili,name);//使用数组rili和name创建table
table.setRowSelectionAllowed(false);
scroll=new JScrollPane(table);
getContentPane().add(scroll,BorderLayout.CENTER);
}
shMessage.setText("年"+calendar.getMonth()+"月" );
}
public void itemStateChanged(ItemEvent e)
{
if(e.getSource()==list)
{ year=s[list.getSelectedIndex()];
calendar.setYear(year);
calendar.setMonth(month);
rili=calendar.getCalendar();
remove(scroll);
table=new JTable(rili,name);
table.setRowSelectionAllowed(false);
scroll=new JScrollPane(table);
getContentPane().add(scroll,BorderLayout.CENTER);
setVisible(true);
//下拉列表的处理事件的接口程序,作为发生的相应事件,将年份重新赋值
}
}
}
class CalendarMainClass
{ public static void main(String args[])
{ new CalenderFrame();
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -