⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 calendertrain.java

📁 学生管理系统
💻 JAVA
字号:
package xxglxt;

import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Font;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.Date;
import java.util.GregorianCalendar;
import javax.swing.JButton;
import javax.swing.JComboBox;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JDialog;
import javax.swing.JTextField;


/**
 * @param 日历程序
 */
public class CalenderTrain extends JDialog implements ActionListener {
    //月份和年份的下列列表框
    private JComboBox MonthBox = new JComboBox();
    private JComboBox YearBox = new JComboBox();
    //月份和年份的标签
    private JLabel YearLabel = new JLabel("年份:");
    private JLabel MonthLabel = new JLabel("月份");
    //"查看"和"今天"两个按键
    private JButton button_ok = new JButton("查看");
    private JButton button_today = new JButton("今天");
    //获取今天的日期年份月份
    private Date now_date = new Date();
    private int now_year =now_date.getYear() + 1900;
    private int now_month = now_date.getMonth();
    private boolean todayFlag = false; //是否显示今天的日期
    //用一组按钮显示日期,一共7行7列,第一行为星期的名字
    private JButton[] button_day = new JButton[42];
    private final String[] week = {"日", "一", "二", "三", "四", "五", "六"};
    private JButton[] button_week = new JButton[7];
    private int month_int; //保存用户选择的月份
    private String year_int = null; //保存用户选择的年份
    //————————————————————————————————————————
    private String month_int1;//保存最後的月份
    private String year_int1=null;//保存用戶選擇的年份
    private String day1;//保存用戶最後的日子
    private JButton a;
    private JTextField b;
      //————————————————————————————————————————

    public CalenderTrain(JButton a,JTextField b) {
        super();
        this.a=a;
        this.b=b;

        this.setTitle("选择日期"); //设置标题
        this.init();
        this.setLocation(500, 300);
        this.setResizable(false); //设置面板的大小不能变化
        pack();

    }

    //初始化日历
    private void init() {
        Font font = new Font("Dialog", Font.BOLD, 14);
        YearLabel.setFont(font);
        MonthLabel.setFont(font);
        button_ok.setFont(font);
        button_today.setFont(font);
        //设定年份区间,为当前年份的过去50年到当前年份
        for (int i = now_year - 50; i <= now_year; i++) {
            YearBox.addItem(i + "");
        }
        //设定年分下拉列表为当前年份,当前年份处于第50项
        YearBox.setSelectedIndex(50);
        //设定月分区间,12个月
        for (int i = 1; i < 13; i++) {
            MonthBox.addItem(i + "");

        }
        //设定月份下拉列表为当前年份
        MonthBox.setSelectedIndex(now_month);
        //放置下拉列表框和控制按钮的面板
        JPanel panel_ym = new JPanel();
        panel_ym.add(YearLabel);
        panel_ym.add(YearBox);
        panel_ym.add(MonthLabel);
        panel_ym.add(MonthBox);
        panel_ym.add(button_ok);
        panel_ym.add(button_today);
        //为两个按钮添加事件侦听器
        button_ok.addActionListener(this);
        button_today.addActionListener(this);




        JPanel panel_day = new JPanel(); //放置日期面板
        //网格布局管理器,7行7列,网格之间水平和垂直方向上间隔均为5
        panel_day.setLayout(new GridLayout(7, 7, 3, 3));
        //添加星期的名字,并放在面板里
        for (int i = 0; i < 7; i++) {
            button_week[i] = new JButton(" ");
            button_week[i].setText(week[i]);
            button_week[0].setForeground(Color.black);
            panel_day.add(button_week[i]);

        }
        button_week[0].setForeground(Color.red);
        button_week[6].setForeground(Color.red);
        //添加日期,放入面板里
        for (int i = 0; i < 42; i++) {
            button_day[i] = new JButton(" ");
            panel_day.add(button_day[i]);
            button_day[i].addActionListener(this);
        }
        this.paintDay();
        JPanel panel_main = new JPanel();
        panel_main.setLayout(new BorderLayout());
        panel_main.add(panel_day, BorderLayout.SOUTH);
        panel_main.add(panel_ym, BorderLayout.NORTH);
        getContentPane().add(panel_main);

    }


    private void paintDay() {
        if (todayFlag) {
            year_int = now_year + "";
            month_int = now_month;

        } else {
            year_int = YearBox.getSelectedItem().toString();
            month_int = MonthBox.getSelectedIndex();
        }
        int year_sel = Integer.parseInt(year_int) - 1990;
        Date firstDay = new Date(year_sel, month_int, 1);
        GregorianCalendar cal = new GregorianCalendar();
        cal.setTime(firstDay);
        int days = 0;
        int day_week = 0;
        if (month_int == 0 || month_int == 7 || month_int == 9 ||
            month_int == 11) {
            days = 31;
        } else if (month_int == 3 || month_int == 5 || month_int == 8 ||
                   month_int == 10) {
            days = 30;
        } else {
            if (cal.isLeapYear(year_sel)) {
                days = 29;
            } else {
                days = 28;
            }
        }
        day_week = firstDay.getDay();
        int count = 1;
        for (int i = day_week; i < day_week + days; count++, i++) {
            if (i % 7 == 0 || i == 6 || i == 13 || i == 20 || i == 27 ||
                i == 34 || i == 41) {
                if (i == day_week + now_date.getDate() - 1) {
                    button_day[i].setForeground(Color.blue);
                    button_day[i].setText(count + "");
                } else {
                    button_day[i].setForeground(Color.red);
                    button_day[i].setText(count + "");

                }
            } else {
                if (i == day_week + now_date.getDate() - 1) {
                    button_day[i].setForeground(Color.blue);
                    button_day[i].setText(count + "");

                } else {
                    button_day[i].setForeground(Color.black);
                    button_day[i].setText(count + "");
                }
            }
        }
        if (day_week == 0) {
            for (int i = days; i < 42; i++) {
                button_day[i].setText(" ");

            }
        } else {
            for (int i = 0; i < day_week; i++) {
                button_day[i].setText(" ");

            }
            for (int i = day_week + days; i < 42; i++) {
                button_day[i].setText(" ");
            }
        }
    }


    public void actionPerformed(ActionEvent e) {
        if (e.getSource() == button_ok) {
            todayFlag = false;
            this.paintDay();
        } else if (e.getSource() == button_today) {
            todayFlag = true;
            YearBox.setSelectedIndex(50);
            MonthBox.setSelectedIndex(now_month);
            this.paintDay();
        }
        if(e.getActionCommand().equals(" ")==false&&e.getActionCommand().equals("查看")==false&&e.getActionCommand().equals("今天")==false){

           month_int1= YearBox.getSelectedItem().toString()+"."+MonthBox.getSelectedItem().toString()+"."+e.getActionCommand();

           System.out.println(month_int1);
           a.setEnabled(true);
           b.setText(month_int1);
           dispose();

        }




    }
public String dataSelect(){
    return month_int1;
}

}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -