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

 这篇文章主要介绍了日历显示读出输入的年月的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); 
   }
  });
 }
}
 

时间: 2024-10-26 00:59:45

日历显示读出输入的年月的java代码的相关文章

日历显示读出输入的年月的java代码_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 =

java代码执行js-java代码模拟浏览器,访问网页;使网页中的统计代码能执行。

问题描述 java代码模拟浏览器,访问网页:使网页中的统计代码能执行. 我的操作步奏: 1.Eclipse里面写个简单的jsp页面,加入CNZZ统计脚本,启动服务器. 2.浏览器访问.浏览器中访问jsp,CNZZ系统能统计到该次访问.3.java代码访问.HttpClient的get请求访问同一地址(浏览器中地址),能获得正确响应,但是CNZZ系统,统计不到该次访问.也就是说没有执行统计脚本. 第三点中如何让CNZZ统计到代码的访问???(我百度查看过很多文章,一般就停留在获取页面代码,不能像浏

编写一个java代码接受用户输入的账号和密码 给三次机会。但是运行后输入后显示错误。

问题描述 编写一个java代码接受用户输入的账号和密码 给三次机会.但是运行后输入后显示错误. package www; import java.awt.*; import javax.swing.*; import java.awt.event.*; public class SwingJFrame extends JFrame implements ActionListener{ JLabel jb1=new JLabel("输入帐号:"); JLabel jb2=new JLab

在win8日历显示农历和节假日

农历是中国长期采用的一种传统历法,也是最早使用的历法,是非常重要的,所以在Windows 8 Metro日历中显示农历和节假日是很有必要的,下面Win8迷教你如何在Windows 8 日历添加农历和节假日显示. 在Windows 8日历显示农历和节假日: 打开https://login.live.com/,登录自己的帐号,在Hotmail选项中选择日历,再点击订阅,进入订阅界面 日历输入: www.google.com/calendar/ical/khev4hvo95dho74k3km1joav

日历显示程序

程序|日历|显示 <?php $selectedDay = date( 'd'); $selectedMonth = date( 'm'); $selectedYear = date( 'Y'); //获取当月第一天是数值型星期几$firstday = date( 'w',mktime(0,0,0,$selectedMonth,1,$selectedYear)); //找出本月最后一天 $lastday = 31; do { $monthOrig = date( 'm',mktime(0,0,0

在Delphi中处理数据库日期型字段的显示与输入

使用Delphi进行数据库设计时,不可避免的会涉及到日期型字段的输入问题.不过与 Microsoft的Access 97中文版等相比,Delphi本身提供的日期型字段的显示和输入方式并 不适合中国人的习惯. 因此对于日期型字段的处理,大家提出了不少解决方法,但是处理结果在显示和输入 上并不统一,例如显示时可以实现"yyyy年mm月dd日"的格式,但是在输入时还是要按照 国外的习惯用"yyyy-mm-dd"的形式进行输入:而使用TdateTimePicker进行选择输

在页面上放一个文本框和一个按钮,想文本框中输入内容点击按钮,读出输入的内容。发声的。可以听见的 谢谢。急急急急!!!!!!!!!!!!

问题描述 在页面上放一个文本框和一个按钮,想文本框中输入内容点击按钮,读出输入的内容.发声的.可以听见的谢谢.急急急急!!!!!!!!!!!!

java显示当前运行时的参数(java运行参数)_java

显示当前运行java代码的运行时的各种参数. 不带显String操作. 复制代码 代码如下: package systeminfo; import java.util.Iterator;import java.util.Map.Entry;import java.util.Properties; public class sysinfo {  public static void main(String[] args) {  Properties p = System.getProperties

求一个能从数据库读取数据并显示到坐标图上的java程序

问题描述 求一个能从数据库读取数据并显示到坐标图上的java程序 新手学java,但是现在急需一个能从数据库读取数据并显示到坐标图上的java程序,希望各位能够给一点帮助,谢谢了 解决方案 http://www.open-open.com/lib/view/open1337915511824.htmlhttp://blog.csdn.net/sjf0115/article/details/7059407 解决方案二: