java编写日历程序设计,日历的设计与实现(Java课程设计)

  java编写日历程序设计,日历的设计与实现(Java课程设计)

  本文实例为大家分享了爪哇岛实现日历应用程序设计的具体代码,供大家参考,具体内容如下

  1、效果和要求

  *在文本框输入年中输入年份,验证年份的有效性;按回车键后,显示输入年份的正确日历* 单击上月按钮可以显示当前月的上一月的日历;如果月份小于1,则显示上一年的12月* 单击下个月按钮,可以显示当前月的下一月的日历;如果月份大于1,则显示下一年的数字一(一)月

  2、源码

  CalendarBean.java

  导入Java。util。日历;公共类日历豆{ String day[];int year=2013,month=0;public void setYear(int year){ this。年份=年份;} public int getYear(){ return year;} public void set month(int month){ this。月=月;} public int getMonth(){ return month;} //返回某年某月数字一(一)号开始的日期数组public String[]getDays(){ String a[]=new String[42];日历日历=日历。getinstance();//注意:1月份是从0开始,所以要减数字一(一)日历。设置(年,月- 1,1);(同国际组织)国际组织星期几=日历。获取(日历。星期几)-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){ a[I]=字符串。(n)值;n;}返回a;} }日历框架。爪哇岛

  导入javax。挥棒。*;导入Java。awt。*;导入Java。awt。事件。动作事件;导入Java。awt。事件。动作监听器;公共类日历框架扩展JFrame { JLabel label day[]=new JLabel[42];JLabel labelYearJButton title name[]=new JButton[7];JButton nextMonth,previous monthjlabel showMessageJTextField inputYearCalendarBean日历;字符串名称[]={ 日, 一, 二, 三, 四, 五, 六 };int year=2013,month=1;字符串天数[];public CalendarFrame() { super(日历应用程序);calendar=新日历bean();calendar.setYear(年份);calendar.setMonth(月);天数=日历。getdays();

   // 窗口添加scrollPane在中心区        add(getCenterPanel(),BorderLayout.CENTER);        // 窗口添加pNorth 在北面区域        add(getNorthPanel(),BorderLayout.NORTH);        // 窗口添加pSouth 在南区域。        add(getSouthPanel(),BorderLayout.SOUTH);    }    private JPanel getNorthPanel() {        JPanel panel = new JPanel();        labelYear = new JLabel("请输入年份:");        inputYear = new JTextField(10);        previousMonth = new JButton("上月");        nextMonth = new JButton("下月");        /**         * 添加时间监听         */        inputYear.addActionListener(new ActionListener() {            @Override            public void actionPerformed(ActionEvent e) {                try{                    year = Integer.parseInt(inputYear.getText());                }catch (NumberFormatException el){                    JOptionPane.showMessageDialog(null,"请输入正确年份!");                }                calendar.setYear(year);                UpdateUI();            }        });        previousMonth.addActionListener(new ActionListener() {//上个月            @Override            public void actionPerformed(ActionEvent e) {                month--;//获取上个月的时间                //System.out.println("Hello World");                if(month<=0){//跳到上一年                    year--;                    month = 12;                }                UpdateUI();;            }        });        nextMonth.addActionListener(new ActionListener() {//下个月            @Override            public void actionPerformed(ActionEvent e) {                month++;                if(month>12){//到达下一年                    year++;                    month=1;                }                UpdateUI();;            }        });        panel.add(labelYear,new FlowLayout());        panel.add(inputYear,new FlowLayout());        panel.add(previousMonth,new FlowLayout());        panel.add(nextMonth,new FlowLayout());        return panel;    }    private JPanel getCenterPanel() {        JPanel panel = new JPanel();        // 将panel的布局设置为7行7列的GridLayout布局        panel.setLayout(new GridLayout(7,7));        for (int i = 0; i < 7; i++) {            titleName[i] = new JButton(name[i]);            // panel添加组件titleName[i]            panel.add(titleName[i]);        }        for (int i = 0; i < 42; i++) {            labelDay[i] = new JLabel(days[i], JLabel.CENTER);            // panel添加组件labelDay[i]            panel.add(labelDay[i]);        }        return panel;    }    private JPanel getSouthPanel() {        JPanel panel = new JPanel();        showMessage = new JLabel("日历: " + year + "年" + month + "月");        panel.add(showMessage);        return panel;    }    //添加的方法    private void UpdateUI(){        calendar.setYear(year);        calendar.setMonth(month);        days = calendar.getDays();        for (int i = 0; i < 42; i++) {            labelDay[i].setText(days[i]);        }        showMessage.setText("日历:"+calendar.getYear()+"年"+calendar.getMonth()+"月");    }}CalendarMainClass.java

  

import javax.swing.*;public class CalendarMainClass {    public static void main(String args[]) {        CalendarFrame frame = new CalendarFrame();        frame.setBounds(100, 100, 360, 320);        frame.setVisible(true);         frame.validate();        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);    }}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持盛行IT。

 

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: