一个简单的JAVA日历程序[Java编程]
本文“一个简单的JAVA日历程序[Java编程]”是由七道奇为您精心收集,来源于网络转载,文章版权归文章作者所有,本站不对其观点以及内容做任何评价,请读者自行判断,以下是其具体内容:
/**以下是日历的代码程序
有疑问 复书 ycj@18e.net
**/
//CalenderTrain.java
package com.swing;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import java.util.*;
public class CalenderTrain extends JFrame implements ActionListener {
JComboBox Month = new JComboBox(); //月份下拉列表框
JComboBox Year = new JComboBox(); //年份下拉列表框
JLabel Year_l = new JLabel("Year::"); //定义标签
JLabel Month_l = new JLabel("Month::"); //定义标签
Date now_date = new Date(); //获得本日的日期
JButton[] button_day = new JButton[49]; //定义一个数组用来存放日期
JButton button_ok = new JButton("肯定"); //实际挑选日期
JButton button_today = new JButton("本日"); //显示本日按钮
int now_year = now_date.getYear() + 1900; //获得年份值
int now_month = now_date.getMonth(); //获得月份值(当前月份-1)
boolean bool = false;
String year_int = null; //存放年份
int month_int; //存放月份
JPanel pane_ym = new JPanel(); //安排下拉列表框和掌握按钮面板
JPanel pane_day = new JPanel(); //安排日期面板
JPanel pane_parent = new JPanel(); //安排以上两个面板
//定义办法绘制面板
public CalenderTrain() {
super("Calender!"); //设定面板得title
//---以下几行使得关闭面板时退出程序
setDefaultCloseOperation(DISPOSE_ON_CLOSE);
addWindowListener(new WindowAdapter() {
public void windowClose(WindowEvent e) {
System.out.print("CLOSING THE WIN");
System.exit(0);
}
});
//---
setResizable(false); //面板的大小不能改变
//设定年代
/*年份的区间是当前年份的过去10年到当前年份的将来20年
* 月份正常1??12月
*/
for (int i = now_year - 10; i <= now_year + 20; i++) {
Year.addItem(i + "");
}
for (int i = 1; i < 13; i++) {
Month.addItem(i + "");
}
Year.setSelectedIndex(10); //设定年份下拉列表为当前年份
pane_ym.add(Year_l); //增添年份标签
pane_ym.add(Year); //增添年份下拉列表框
Month.setSelectedIndex(now_month); //设定月份下拉列表为当前月份
pane_ym.add(Month_l); //增添月份标签
pane_ym.add(Month); //增添月份下拉列表框
pane_ym.add(button_ok); //增添肯定按钮
pane_ym.add(button_today); //增添“本日”按钮
button_ok.addActionListener(this); //肯定按钮增添监听事件
button_today.addActionListener(this); //“本日”按钮增添监听事件
//年代设定完毕
//初始化日期按钮并绘制
pane_day.setLayout(new GridLayout(7, 7, 10, 10));
for (int i = 0; i < 49; i++) {
button_day[i] = new JButton(" ");
pane_day.add(button_day[i]);
}
this.setDay(); //调用setDay()办法
pane_parent.setLayout(new BorderLayout()); //设定筹划管理器
setContentPane(pane_day);
setContentPane(pane_ym);
pane_parent.add(pane_day, BorderLayout.SOUTH);
pane_parent.add(pane_ym, BorderLayout.NORTH);
setContentPane(pane_parent);
pack();
show();
}
void setDay() {
if (bool) {
year_int = now_year + "";
month_int = now_month;
} else {
year_int = Year.getSelectedItem().toString();
month_int = Month.getSelectedIndex();
}
int year_sel = Integer.parseInt(year_int) - 1900; //得到年份值
Date dt = new Date(year_sel, month_int, 1); //构造一个日期
GregorianCalendar cal = new GregorianCalendar(); //成立一个Calendar实例
cal.setTime(dt);
String week[] = { "Sun", "Mon", "Tue", "Wed", "Thur", "Fri", "Sat" };
int day = 0; //day中存放某个月份的天数
int day_week = 0; //用来存放某个月的第一天是星期几的数值
//--将星期增添到前7个按钮中
for (int i = 0; i < 7; i++) {
button_day[i].setText(week[i]);
}
//--
/*判断是几月份,按照它来设定day的值
* 此中仲春份要判断能否是闰年
*/
if (month_int == 0
|| month_int == 2
|| month_int == 4
|| month_int == 6
|| month_int == 7
|| month_int == 9
|| month_int == 11) {
day = 31;
} else if (
month_int == 3
|| month_int == 5
|| month_int == 8
|| month_int == 10) {
day = 30;
} else {
if (cal.isLeapYear(year_sel)) {
day = 29;
} else {
day = 28;
}
}
day_week = 7 + dt.getDay();
int count = 1;
/*绘制按钮
* 在这里我们首先要按照选定的月份的第一天是星期几来肯定我们绘制按钮的起始位置
* 此中day_week就是我们要绘制的起始位置
* 关于那些没有数值可以显示的按钮要置空
*/
for (int i = day_week; i < day_week + day; count++, i++) {
if (i % 7 == 0
|| i == 13
|| i == 20
|| i == 27
|| i == 48
|| 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 = day; i < 49; i++) {
button_day[i].setText(" ");
}
} else {
//第一天前面的按钮置空
for (int i = 7; i < day_week; i++) {
button_day[i].setText(" ");
} //最后一天背面的按钮置空
for (int i = day_week + day; i < 49; i++) {
button_day[i].setText(" ");
}
}
}
public void actionPerformed(ActionEvent e) {
if (e.getSource() == button_ok) {
bool = false;
this.setDay(); //假如点击肯定按钮就调用setDay()重新办法绘制按钮
} else if (e.getSource() == button_today) {
bool = true;
Year.setSelectedIndex(10);
Month.setSelectedIndex(now_month);
this.setDay(); //假如点击本日按钮,得到本日的日期
}
}
public static void main(String[] args) {
CalenderTrain ct = new CalenderTrain();
}
}
以上是“一个简单的JAVA日历程序[Java编程]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:
本文地址: | 与您的QQ/BBS好友分享! |
- ·上一篇文章:OsWorkflow初探
- ·下一篇文章:Java面向对象编程学习总结
- ·中查找“一个简单的JAVA日历程序”更多相关内容
- ·中查找“一个简单的JAVA日历程序”更多相关内容