我要JAVA做个万年历 什么叫比较好?该用什么就用什么不外是Jrame,JLabel,JButton,JPanel这几个 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 用Swing吧,好看一点,又容易移植 :) 你可以到http://www.javaworld.com/ 或者到 http://www.cn-java.com/ 看看,肯定会有收获的。 我写过一个,需要的话,贴出email [email protected]给我吧,我现在是菜鸟,什么代码都想看哦 我其实很简单我只要你告诉我Calendar如何用如何设置个时间给他并且知道这个时间是星期几 代码//日历程序 write by Jein 2003-11-25import 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("Enter"); //现实选择日期 JButton button_today = new JButton("Today"); //显示今天按钮 int now_year = now_date.getYear() + 1900; //获取年份值 int now_month = now_date.getMonth(); //获取月份值(当前月份-1) 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.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() { 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) { button_day[i].setForeground(Color.RED); button_day[i].setText(count + ""); } else { 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) { this.setDay();//如果点击确定按钮就调用setDay()重新方法绘制按钮 } else if (e.getSource() == button_today) { new CalenderTrain();//如果点击今天按钮,得到今天的日期 } } public static void main(String[] args) { CalenderTrain ct = new CalenderTrain(); } } 上面有email的三个都已发了,具体查收email有个小要求,觉得写的好的,帮我吆喝一声 兄弟我也要想。[email protected] 学习 [email protected]能给我吗?我也想要! nil2000(我爱北京天安门) 比我想到的要好 [email protected]来一个吧谢了 请问为什么用IE得到的网页信息和Java得到的不一样? Runtime.getRuntime().exec的问题 如何在单击b类中的按钮执行代码的过程中,同时让a类中的一个按钮下的代码也执行。 用java编程实现两个定时线程,一个线程每隔1秒显示一次,另一个线程每隔3秒显示一次 Javaw.exe启动程序的问题 JTextPane的问题求救 一个问题 帮着找错误,马上散分 一个关于eclipse的问题 密码设置问题 关于类的引进的问题? 在多线程中,怎么停掉别的线程
//日历程序 write by Jein 2003-11-25
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("Enter"); //现实选择日期
JButton button_today = new JButton("Today"); //显示今天按钮
int now_year = now_date.getYear() + 1900; //获取年份值
int now_month = now_date.getMonth(); //获取月份值(当前月份-1)
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.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() {
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) {
button_day[i].setForeground(Color.RED);
button_day[i].setText(count + "");
} else {
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) {
this.setDay();//如果点击确定按钮就调用setDay()重新方法绘制按钮
} else if (e.getSource() == button_today) {
new CalenderTrain();//如果点击今天按钮,得到今天的日期
}
}
public static void main(String[] args) {
CalenderTrain ct = new CalenderTrain();
}
}
有个小要求,觉得写的好的,帮我吆喝一声
能给我吗?我也想要!
来一个吧
谢了