本篇文章给大家分享的是有关如何在Java项目中实现一个日历功能,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。
CalendarFrame.java
import java.awt.BorderLayout;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.text.SimpleDateFormat;
import java.util.Date;
import javax.swing.JButton;
import javax.swing.JComboBox;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.border.BevelBorder;
import javax.swing.border.SoftBevelBorder;
public class CalendarFrame extends JFrame implements ActionListener{
/**
* @author Nut
* 2016.01.13
*/
private static final long serialVersionUID = -7260798316896145633L;
JLabel labelDay[] = new JLabel[42];
JButton titleName[] = new JButton[7];
String name[]={"日","一","二","三","四","五","六"};
JButton nextMonth,previousMonth;
JComboBox choiceYear,choiceMonth;
Calendarbean calendar;
JLabel showYear,showMonth;
JLabel showmessage=new JLabel("",JLabel.CENTER);
int year = 2011,month=2;
//构造方法初始化界面
public CalendarFrame(){
JPanel pCenter = new JPanel();
pCenter.setLayout(new GridLayout(7,7));
//星期栏
for(int i=0;i<7;i++){
titleName[i]=new JButton(name[i]);
titleName[i].setBorder(new SoftBevelBorder(BevelBorder.RAISED));
pCenter.add(titleName[i]);
}
//日期栏
for(int i=0;i<42;i++){
labelDay[i]=new JLabel("",JLabel.CENTER);
labelDay[i].setBorder(new SoftBevelBorder(BevelBorder.LOWERED));
pCenter.add(labelDay[i]);
}
//年月选择栏
choiceYear=new JComboBox();
choiceMonth=new JComboBox();
showYear=new JLabel("年");
showMonth=new JLabel("月 ");
for(int i=1990;i<2050;i++)
choiceYear.addItem(i);
choiceYear.addActionListener(this);
for(int i=1;i<=12;i++)
choiceMonth.addItem(i);
choiceMonth.addActionListener(this);
calendar=new Calendarbean();
nextMonth=new JButton("下月");
previousMonth=new JButton("上月");
nextMonth.addActionListener(this);
previousMonth.addActionListener(this);
JPanel pNorth=new JPanel(),
pSouth=new JPanel();
pNorth.add(choiceYear);
pNorth.add(showYear);
pNorth.add(choiceMonth);
pNorth.add(showMonth);
pNorth.add(previousMonth);
pNorth.add (nextMonth);
pSouth.add(showmessage);
add(pCenter,BorderLayout.CENTER);
add(pNorth,BorderLayout.NORTH);
add(pSouth,BorderLayout.SOUTH);
setYearAndMonth(year,month);
setDefaultCloseOperation(DISPOSE_ON_CLOSE);
}
public void setYearAndMonth(int y,int m){
calendar.setYear(y);
calendar.setMonth(m);
String day[]=calendar.getCalendar();
for(int i=0;i<42;i++)
labelDay[i].setText(day[i]);
SimpleDateFormat df = new SimpleDateFormat("yyyy年MM月dd日 EEEE");//设置日期格式
showmessage.setText("系统时间:"+df.format(new Date()));
}
//事件动作
public void actionPerformed(ActionEvent e){
if(e.getSource()==nextMonth){
month=month +1;
if(month>12)
month=1;
calendar.setMonth(month);
choiceMonth.setSelectedItem(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);
choiceMonth.setSelectedItem(month);
String day[]=calendar.getCalendar();
for(int i=0;i<42;i++){
labelDay[i].setText(day[i]);
}
}
//选择年份
else if (e.getSource()==choiceYear){
calendar.setYear((Integer) choiceYear.getSelectedItem());
String day[]=calendar.getCalendar();
for(int i=0;i<42;i++){
labelDay[i].setText(day[i]);
}
}
//选择月份
else if (e.getSource()==choiceMonth){
calendar.setMonth((Integer) choiceMonth.getSelectedItem());
String day[]=calendar.getCalendar();
for(int i=0;i<42;i++){
labelDay[i].setText(day[i]);
}
}
// showmessage.setText("日历:"+calendar.getYear()+"年"+calendar.getMonth()+"月");
}
}
Calendarbean.java
import java.util.Calendar;
public class Calendarbean {
String day[];
int year = 2005,month=0;
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[42];
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;
}
for(int i=星期几,n=1;i<星期几+day;i++){
a[i]=String.valueOf(n);
n++;
}
return a;
}
}
CalendarMainClass.java
public class CalendarMainClass{
public static void main(String args[])
{
CalendarFrame frame = new CalendarFrame();
frame.setBounds(100,100,360,300);
frame.setTitle("Java日历");
frame.setVisible(true);
frame.setYearAndMonth(1990,1);//设置日历初始值为1990年1月
}
}
以上就是如何在Java项目中实现一个日历功能,小编相信有部分知识点可能是我们日常工作会见到或用到的。希望你能通过这篇文章学到更多知识。更多详情敬请关注亿速云行业资讯频道。
亿速云「云服务器」,即开即用、新一代英特尔至强铂金CPU、三副本存储NVMe SSD云盘,价格低至29元/月。点击查看>>
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。