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

📄 日历.java.bak

📁 月~历 月历而已~~ 前后长度为100年 好象~ 可以修改
💻 BAK
字号:
import java.awt.*;
import java.awt.event.*;
import java.util.*;
import javax.swing.*;

public class 日历 extends JFrame implements ActionListener
{
	private JComboBox MonthBox = new JComboBox();
	private JComboBox YearBox = new JComboBox();//年份 月份下拉表
	private JLabel MonthLabel = new JLabel("月份:");
	private JLabel YearLabel = 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;
	
	private JButton[] button_day = new JButton[42];//7*7=42
	private final String[] week = {"日","一","二","三","四","五","六"};
	private JButton[] button_week = new JButton[7];
	private String year_int = null;//保存用户选择的年份
	private int month_int;//保存用户选择的月份
	
	public 日历()
	{
		super();
		this.setTitle("日 历  1.0___BY SYX");
		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);
		//年份区间 前10年 后20年
		for(int i = now_year - 10;i < now_year + 21; i++)
		{
			YearBox.addItem(i+"");
		}
		YearBox.setSelectedIndex(10);
		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();
		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.blue);
			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]);
		}
		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) - 1900;
		Date firstDay = new Date(year_sel,month_int,1);//构造该月第一天
		GregorianCalendar cal = new GregorianCalendar();
		cal.setTime(firstDay);
		//根据 判断月份 设定DAY值
		int days = 0;
		int day_week = 0;
		if(month_int ==0||month_int ==2||month_int ==4||month_int ==6||month_int ==7||month_int ==9||month_int ==10)
			days = 31;
		else if(month_int ==3||month_int ==5||month_int ==8||month_int ==11)
			days = 30;
			else if(cal.isLeapYear(year_sel))
				days = 29;
				else 
					days = 28;
		/*绘制按钮,day_week为首按钮*/
		day_week = firstDay.getDay();
		int count = 1;
		for(int i = day_week;i<day_week+days;count++,i++)
		{
			button_day[i].setText(count+"");
			//设置颜色
			if(i%7==0||i==6||i==13||i==20||i==27||i==34||i==41)
				button_day[i].setForeground(Color.red);
			else
				button_day[i].setForeground(Color.black);
			if((i==day_week+now_date.getDate() - 1)&&todayFlag == true)
				button_day[i].setForeground(Color.blue);
				
		}
		if(day_week == 0)
			for(int i = days;i<42;i++);
		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(10);
			MonthBox.setSelectedIndex(now_month);
			this.paintDay();
		}
	}
	public static void main(String args[])
	{
		日历 r = new 日历();
		r.addWindowListener(new WindowAdapter()
			{
				public void windowClosing(WindowEvent e)
				{
					System.exit(1);
				}
			});
		r.setVisible(true);
		r.show();
	}
}
			
					
		
		
	
	

⌨️ 快捷键说明

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