Java实现简单日历小程序 Java图形界面小日历开发
程序员文章站
2022-05-03 10:30:13
今天给大家介绍一下如何用java swing开发一款简单的小日历,下面我们来看代码:
首先创建一个calendarbean类,用于基本的日期计算:
pack...
今天给大家介绍一下如何用java swing开发一款简单的小日历,下面我们来看代码:
首先创建一个calendarbean类,用于基本的日期计算:
package other1; 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 date=calendar.getinstance(); date.set(year,month-1,1); int week=date.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=week,n=1;i<week+day;i++) { a[i]=string.valueof(n) ; n++; } return a; } }
然后再创建一个主界面类,用于界面的实现:
package other1; import java.awt.*; import java.awt.event.*; import javax.swing.*; public class calendarframe extends jframe implements actionlistener { jlabel labelday[]=new jlabel[42]; jtextfield text=new jtextfield(10); jbutton titlename[]=new jbutton[7]; jbutton button = new jbutton(); string name[]={"日","一","二","三", "四","五","六"}; jbutton nextmonth,previousmonth; int year=1996,month=1; //启动程序显示的日期信息 calendarbean calendar; jlabel showmessage=new jlabel("",jlabel.center); jlabel lbl1 = new jlabel("请输入年份:"); jlabel lbl2=new jlabel(" "); public calendarframe() { setbackground(new color(0, 128, 128)); jpanel pcenter=new jpanel(); pcenter.setbackground(new color(0, 139, 139)); //将pcenter的布局设置为7行7列的gridlayout 布局。 pcenter.setlayout(new gridlayout(7,7)); //pcenter添加组件titlename[i] for(int i=0;i<7;i++) { titlename[i]=new jbutton(name[i]); pcenter.add(titlename[i]); } //pcenter添加组件labelday[i] for(int i=0;i<42;i++) { labelday[i]=new jlabel("",jlabel.center); pcenter.add(labelday[i]); } text.addactionlistener(this); calendar=new calendarbean(); calendar.setyear(year); calendar.setmonth(month); string day[]=calendar.getcalendar(); for(int i=0;i<42;i++) { labelday[i].settext(day[i]); } nextmonth=new jbutton("下月"); previousmonth=new jbutton("上月"); button=new jbutton("确定"); //注册监听器 nextmonth.addactionlistener(this); previousmonth.addactionlistener(this); button.addactionlistener(this); jpanel pnorth=new jpanel(), psouth=new jpanel(); pnorth.add(showmessage); pnorth.add(lbl2); pnorth.add(previousmonth); pnorth.add(nextmonth); psouth.add(lbl1); psouth.add(text); psouth.add(button); showmessage.settext("日历:"+calendar.getyear()+"年"+ calendar.getmonth()+"月" ); scrollpane scrollpane=new scrollpane(); scrollpane.add(pcenter); getcontentpane().add(scrollpane,borderlayout.center);// 窗口添加scrollpane在中心区域 getcontentpane().add(pnorth,borderlayout.north);// 窗口添加pnorth 在北面区域 getcontentpane().add(psouth,borderlayout.south);// 窗口添加psouth 在南区域。 } public void actionperformed(actionevent e) { if(e.getsource()==nextmonth) { month=month+1; if(month>12) month=1; calendar.setmonth(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); string day[]=calendar.getcalendar(); for(int i=0;i<42;i++) { labelday[i].settext(day[i]); } } else if(e.getsource()==button) { month=month+1; if(month>12) month=1; calendar.setyear(integer.parseint(text.gettext())); string day[]=calendar.getcalendar(); for(int i=0;i<42;i++) { labelday[i].settext(day[i]); } } showmessage.settext("日历:"+calendar.getyear()+"年"+calendar.getmonth()+"月" ); } }
最后用一个类调用即可:
package other1; import javax.swing.jframe; import javax.swing.uimanager; public class calendarmainclass { public static void main(string args[]) { try { uimanager.setlookandfeel("com.sun.java.swing.plaf.windows.windowslookandfeel"); //windows界面风格 }catch (exception e) { e.printstacktrace(); } calendarframe frame=new calendarframe(); frame.setbounds(100,100,360,300); frame.settitle("日历小程序"); frame.setlocationrelativeto(null);//窗体居中显示 frame.setvisible(true); frame.setdefaultcloseoperation(jframe.exit_on_close); } }
运行结果如下:
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
下一篇: 风趣幽默的男女有别