zoukankan      html  css  js  c++  java
  • Calendar日历小程序

    //有待完善,有点bug
    package com.sunshine.framework.calendar.model;

    import java.util.Calendar;

    /**
     *
     * <p>
     * 描述该类情况 {@link 代表跟谁有关系}
     * </p>
     *
     * @author 王超
     * @since 1.0
     * @date 2016年10月20日 下午8:19:15
     * @see 新建|修改|放弃
     * @see com.sunshine.framework.calendar.model.CalendarBean
     */

    public class CalendarBean {
        String day[];
        int year = 2005, month = 0;

        public String[] getCalendar() {
            String a[] = new String[42];
            // 获取日历的实例对象
            Calendar date = Calendar.getInstance();
            // 设置日历日期
            date.set(this.year, this.month - 1, 1);
            // 获取周数
            int week = date.get(Calendar.DAY_OF_WEEK);
            int day = 0;
            // 判断大月份
            if (this.month == 1 || this.month == 3 || this.month == 5 || this.month == 7 || this.month == 8
                    || this.month == 10 || this.month == 12) {
                day = 31;
            }
            // 判断小月
            if (this.month == 4 || this.month == 6 || this.month == 9 || this.month == 11) {
                day = 30;
            }
            // 单独判断2月
            if (this.month == 2) {
                // 判断是闰年 能被4或400整除 但不能被100整除
                if ((this.year % 4 == 0) || (this.year % 100 != 0) || (this.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;
        }

        public int getMonth() {
            return this.month;
        }

        public int getYear() {
            return this.year;
        }

        public void setMonth(int month) {
            this.month = month;
        }

        public void setYear(int year) {
            this.year = year;
        }

    }


    package com.sunshine.framework.calendar;

    import java.awt.BorderLayout;
    import java.awt.GridLayout;
    import java.awt.ScrollPane;
    import java.awt.event.ActionEvent;
    import java.awt.event.ActionListener;

    import javax.swing.JButton;
    import javax.swing.JFrame;
    import javax.swing.JLabel;
    import javax.swing.JPanel;
    import javax.swing.JTextField;

    import com.sunshine.framework.calendar.model.CalendarBean;

    /**
     *
     * <p>
     * 描述该类情况 {@link 代表跟谁有关系}
     * </p>
     *
     * @author 王超
     * @since 1.0
     * @date 2016年10月20日 下午8:41:58
     * @see 新建|修改|放弃
     * @see com.sunshine.framework.calendar.CalendarFrame
     */

    public class CalendarFrame extends JFrame implements ActionListener {
        /***/
        private static final long serialVersionUID = 1L;
        JButton button = new JButton();
        CalendarBean calendar;
        JLabel labelDay[] = new JLabel[42];
        JLabel lbl1 = new JLabel("请输入年份:");
        JLabel lbl2 = new JLabel("");
        String name[] = { "日", "一", "二", "三", "四", "五", "六" };
        JButton nextMonth, previousMonth;
        JLabel showMessage = new JLabel("", JLabel.CENTER);
        JTextField text = new JTextField(10);
        JButton titleName[] = new JButton[7];
        int year = 1996, month = 1;

        public CalendarFrame() {
            JPanel pCenter = new JPanel();
            // 将pCenter的布局设置为7行7列的GridLayout布局
            pCenter.setLayout(new GridLayout(7, 7));
            // pCenter添加组件titleName[i]
            for (int i = 0; i < 7; i++) {
                // 把星期值存入到titleName数组里
                this.titleName[i] = new JButton(this.name[i]);
            }
            // pCenter添加组件labelDay[i]
            for (int i = 0; i < 42; i++) {
                this.labelDay[i] = new JLabel("", JLabel.CENTER);
                pCenter.add(this.labelDay[i]);
            }
            this.text.addActionListener(this);
            this.calendar = new CalendarBean();
            this.calendar.setYear(this.year);
            this.calendar.setMonth(this.month);
            String day[] = this.calendar.getCalendar();
            for (int i = 0; i < 42; i++) {
                this.labelDay[i].setText(day[i]);
            }
            this.nextMonth = new JButton("下月");
            this.previousMonth = new JButton("上月");
            this.button = new JButton("确定");
            // 注册监听器
            this.nextMonth.addActionListener(this);
            this.previousMonth.addActionListener(this);
            this.button.addActionListener(this);
            JPanel pNorth = new JPanel(), pSouth = new JPanel();
            pNorth.add(this.showMessage);
            pNorth.add(this.lbl2);
            pNorth.add(this.previousMonth);
            pNorth.add(this.nextMonth);
            pNorth.add(this.lbl1);
            pNorth.add(this.text);
            pNorth.add(this.button);
            this.showMessage.setText("日历:" + this.calendar.getYear() + "年" + this.calendar.getMonth() + "月");
            ScrollPane scrollPane = new ScrollPane();
            scrollPane.add(pCenter);
            // 窗口添加scrollPane在中心区域
            add(scrollPane, BorderLayout.CENTER);
            // 窗口添加pNorth 在北面区域
            add(pNorth, BorderLayout.NORTH);
            // 窗口添加pSouth 在南区域。
            add(pSouth, BorderLayout.SOUTH);
        }

        /*
         * (方法重写)
         *
         * @see
         * java.awt.event.ActionListener#actionPerformed(java.awt.event.ActionEvent)
         */
        @Override
        public void actionPerformed(ActionEvent e) {
            if (e.getSource() == this.nextMonth) {
                this.month = this.month + 1;
                if (this.month > 12) {
                    this.month = 1;
                }
                this.calendar.setMonth(this.month);
                String day[] = this.calendar.getCalendar();
                for (int i = 0; i < 42; i++) {
                    this.labelDay[i].setText(day[i]);
                }
            } else if (e.getSource() == this.previousMonth) {
                this.month = this.month - 1;
                if (this.month < 1) {
                    this.month = 12;
                }
                this.calendar.setMonth(this.month);
                String day[] = this.calendar.getCalendar();
                for (int i = 0; i < 42; i++) {
                    this.labelDay[i].setText(day[i]);
                }
            } else {
                this.month = this.month + 1;
                if (this.month > 12) {
                    this.month = 1;
                }
                this.calendar.setYear(Integer.parseInt(this.text.getText()));
                String day[] = this.calendar.getCalendar();
                for (int i = 0; i < 42; i++) {
                    this.labelDay[i].setText(day[i]);
                }
            }
            this.showMessage.setText("日历:" + this.calendar.getYear() + "年" + this.calendar.getMonth() + "月");
        }
    }


    package com.sunshine.framework.calendar;

    import javax.swing.JFrame;
    import javax.swing.UIManager;

    /**
     *
     * <p>
     * 描述该类情况 {@link 代表跟谁有关系}
     * </p>
     *
     * @author 王超
     * @since 1.0
     * @date 2016年10月20日 下午9:34:15
     * @see 新建|修改|放弃
     * @see com.sunshine.framework.calendar.CalendarMain
     */

    public class CalendarMain {
        public static void main(String[] args) {
            try {
                UIManager.setLookAndFeel("com.sun.java.swing.plaf.windows.WindowsLookAndFeel");
            } catch (Exception e) {
                // TODO Auto-generated catch block
                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);
        }
    }

  • 相关阅读:
    Spring Boot 使用 Dom4j XStream 操作 Xml
    Spring Boot 使用 JAX-WS 调用 WebService 服务
    Spring Boot 使用 CXF 调用 WebService 服务
    Spring Boot 开发 WebService 服务
    Spring Boot 中使用 HttpClient 进行 POST GET PUT DELETE
    Spring Boot Ftp Client 客户端示例支持断点续传
    Spring Boot 发送邮件
    Spring Boot 定时任务 Quartz 使用教程
    Spring Boot 缓存应用 Memcached 入门教程
    ThreadLocal,Java中特殊的线程绑定机制
  • 原文地址:https://www.cnblogs.com/qingtianBKY/p/5988783.html
Copyright © 2011-2022 走看看