panel_ym.add(YearBox);
panel_ym.add(MonthLabel);
panel_ym.add(MonthBox);
panel_ym.add(button_ok);
panel_ym.add(button_today);
button_ok.addActionListener(this);
button_today.addActionListener(this);// 为两个按钮添加事件监听器
JPanel panel_day=new JPanel();//放置日期面板
panel_day.setLayout(new GridLayout(7,7,3,3));//网格布局管理器,7行7列,网格之间水平和垂直方向间均为5
for(int i=0;i7;i++){
button_week[i]=new JButton("");
button_week[i].setText(week[i]);
button_week[i].setForeground(Color.red);
panel_day.add(button_week[i]);
}//添加星期的名字,并放到面板里面
button_week[0].setForeground(Color.red);
button_week[6].setForeground(Color.red);
for(int i=0;i42;i++){
button_day[i]=new JButton("");
panel_day.add(button_day[i]);
}//添加日期,放到面板里面
this.paintDay();//显示当前年月的日期
JPanel panel_main=new JPanel();//放置以上两个面板
panel_main.setLayout(new BorderLayout());//边界布局管理器
panel_main.add(panel_day,BorderLayout.SOUTH);
panel_main.add(panel_ym,BorderLayout.NORTH);
getContentPane().add(panel_main);
}
/**显示当前年月的日期*/
@SuppressWarnings("deprecation")
private void paintDay() {
if(this.todayFlag){
year_int=now_year+"";
month_int=now_month;//要求显示今天的日期
}else{
year_int=YearBox.getSelectedItem().toString();//否则,从下拉框中获取用户的年月
month_int=MonthBox.getSelectedIndex();//被选的序号
}
int year_sel=Integer.parseInt(year_int)-1900;//获得年份置
@SuppressWarnings({ })
Date firstDay=new Date(year_sel,month_int,1);//构造该余额的第一天
GregorianCalendar cal=new GregorianCalendar();//创建一个Calendar的实例
cal.setTime(firstDay);
int days=0;//存放某个月份的天数
int day_week=0;//存放某个月份的第一天使星期几色数值
if(month_int==0||month_int==2||month_int==4||month_int==6||month_int==7||month_int==9||month_int==11){
days=31;
}else if(month_int==3||month_int==5||month_int==8||month_int==10){
days=30;
}else{
if(cal.isLeapYear(year_sel)){
days=29;
}else{
days=28;
}//二月,如果闰年,则有29天,否则有28java记事本时间代码他
}//判断是几月份,根据它来设定day的值,其中二月份要判断是否闰年
day_week=firstDay.getDay();
int count=1;
/**
* 绘制按钮 。在这里首先要根据选定的月份的第一天是星期几来确定绘制按钮的起始位置
* 其中day_week就是我们要绘制的起始位置,对于那些没有数值可以显示的按钮要置空
*/
for(int i=day_week;iday_week+days;count++,i++){
if(i%7==0||i==6||i==13||i==20||i==27||i==34||i==41){
//如果是边界上的按钮 , 文字用红色,以来标示周末
if(i==day_week+now_date.getDate()-1){
button_day[i].setForeground(Color.blue);//将与今天一样的日期用蓝色标示
button_day[i].setText(count+"");
}else{
button_day[i].setForeground(Color.red);//其它边界上的按钮中的文字用红色
button_day[i].setText(count+"");
}
}else{
if(i==day_week+now_date.getDate()-1){
button_day[i].setForeground(Color.blue);//将与今天一样的日期用蓝色标示
button_day[i].setText(count+"");
}else{
button_day[i].setForeground(Color.black);//一般位置的按钮上的文字用黑色标示
button_day[i].setText(count+"");
}
}
}
if(day_week==0){
//对于没有日期数值显示的按钮进行置空处理
for(int i=days;i42;i++){
button_day[i].setText("");//如果第一天是周日,则将第一天前面的按钮置空
推荐阅读
- 如何提升老客营销,老客户提升计划方案
- 安装系统怎么选u盘安装,装系统如何选择u盘启动
- 飞行姬相关游戏,飞行姬相关游戏有哪些
- 登山赛车游戏搜索引擎,登山赛车apk
- 单片机c语言定义函数吗 单片机c语言define
- 复制一段java代码如何,java复制粘贴
- 武汉sap维护服务,sap 武汉
- 斗鱼直播如何讲课,怎么进入斗鱼直播间听课
- 字符替换函数python 字符串替换函数python