您现在的位置: 万盛学电脑网 >> 程序编程 >> 脚本专题 >> javascript >> 正文

日历显示读出输入的年月的java代码

作者:佚名    责任编辑:admin    更新时间:2022-06-22

 这篇文章主要介绍了日历显示读出输入的年月的java代码,有需要的朋友可以参考一下

  代码如下: import java.awt.*; import java.awt.event.*; import java.util.Calendar;   import javax.swing.JOptionPane;   class CalendarBean {  //定义一个日历类  String day[]; //天数数组  int year = 2011, month = 9; //给定一个初始年月    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;  } }   class CalendarFrame extends Frame implements ActionListener {  Label labelDay[] = new Label[42]; //用来输出日历的天的数组  Button titleName[] = new Button[7]; //周一到周天的按键  String name[] = { "日", "一", "二", "三", "四", "五", "六" };  TextField text1, text2; //定义输入的年份和月份  Button nextMonth, previousMonth, Enter; //下个月,上个月,确定  Label lab1, lab2, lab3; //几个文本类型的字符串  int year = 2012, month = 9;  CalendarBean calendar; //顶一个量  Label showMessage = new Label("", Label.CENTER); //   定义一个用于显示 当前年月的label 表明,标签上应为中心。    public CalendarFrame() {    //窗体类   Panel pCenter = new Panel();  //镶嵌   pCenter.setLayout(new GridLayout(7, 7));   for (int i = 0; i < 7; i++) {      //给周日到周六的button添加显示文本    titleName[i] = new Button(name[i]);    pCenter.add(titleName[i]);   }   for (int i = 0; i < 42; i++) {          labelDay[i] = new Label("", Label.CENTER);    pCenter.add(labelDay[i]);   }   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]);   }   lab1 = new Label("请输入日期");  //调用一个方法    new一个对象    lab2 = new Label("年份");   lab3 = new Label("月份");   Enter = new Button("确定");   text1 = new TextField(10);   text2 = new TextField(5);   nextMonth = new Button("下月");   previousMonth = new Button("上月");   Enter.addActionListener(this);  //添加指定的动作侦听器   nextMonth.addActionListener(this);   previousMonth.addActionListener(this);   Panel pNorth = new Panel(), pSouth = new Panel();   pNorth.add(lab1);   pNorth.add(lab2);   pNorth.add(text1);   pNorth.add(lab3);   pNorth.add(text2);   pNorth.add(Enter);   pNorth.add(previousMonth);   pNorth.add(nextMonth);   pSouth.add(showMessage);   showMessage.setText("日历:" + calendar.getYear() + "年" + calendar.getMonth() + "月");   ScrollPane scrollPane = new ScrollPane();  //实现单个子组件的自动水平和/或垂直滚动的容器类   scrollPane.add(pCenter);    add(scrollPane, BorderLayout.CENTER);   add(pNorth, BorderLayout.NORTH);   add(pSouth, BorderLayout.SOUTH);  }    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 {    String yea = text1.getText();    String mon = text2.getText();    try {     year = Integer.parseInt(yea); //把string转成int类型      month = Integer.parseInt(mon);     if (month > 12 || month < 1 || year < 1) {  //错误输入的处理      JOptionPane.showMessageDialog(null, "请输入正确月份或月份");       return;     } else {      calendar.setYear(year);      calendar.setMonth(month);     }     String day[] = calendar.getCalendar();     for (int i = 0; i < 42; i++) {      labelDay[i].setText(day[i]);     }    } catch (NumberFormatException ee) {     JOptionPane.showMessageDialog(null, "请输入正确的年份及月份");    }   }   showMessage.setText("日历:" + calendar.getYear() + "年" + calendar.getMonth() + "月");  }   }   public class CalendarMainClass {  public static void main(String args[]) {   CalendarFrame frame = new CalendarFrame();   frame.setTitle("日历");   frame.setBounds(300, 200, 500, 300);   frame.setVisible(true);  //显示窗口   frame.validate(); //使生效   frame.addWindowListener(new java.awt.event.WindowAdapter() {  //点击叉号关闭frame程序    public void windowClosing(java.awt.event.WindowEvent e) {     System.exit(0);     }   });  } }