【Java】java日历
来源:互联网 发布:苹果windows怎么截屏 编辑:程序博客网 时间:2024/06/06 05:15
应用名称:Java日历
用到的知识:Java GUI编程,日期操作
开发环境:win8+eclipse+jdk1.8
功能说明:一个很简单的万年历,可以选择年份和月份,也可以用按钮翻页,日历会实时更新日期,最下方会显示当前操作系统的时间。
效果图:
源代码:
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月}}
0 1
- JAVA日历
- java日历
- java 日历
- java日历
- Java日历
- Java日历
- Java日历
- java 日历
- Java 日历
- 【Java】java日历
- JAVA编写的日历
- java 日历控件
- java 输出当月日历
- java日历代码
- Java中的日历类
- JAVA中的日期、日历
- java-jsp日历
- JAVA日历小程序
- SourceTree 解决文件名忽略大小写的问题
- webView的用法
- hdu 3346 Lucky Number
- 新的博客
- Theano-Deep Learning Tutorials 笔记:LSTM Networks for Sentiment Analysis
- 【Java】java日历
- 【智能路由器】设备流量、网速统计及上下线提醒(基于netfilter编程)
- virtualbox 安装增强包 实现 centos 6.5 / 7 与宿主机文件共享
- 哪种数学知识你可以轻松向外行解释,并且听起来超级酷?
- 根据指定地点的经纬度算出指定的距离的经纬度范围
- hdoj Max Sum Plus Plus Plus 1244 (DP)m个连续段的最大和
- Spring+Struts2+Hibernate概述
- UI学习知识总结
- 杭电1201 18岁生日