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

📄 calendarpad.java

📁 个人开发的数字助理
💻 JAVA
字号:
package 日历记事本;

import java.util.Calendar;
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import java.io.*;
import java.util.Hashtable;
import java.awt.Color;

public class CalendarPad extends JFrame implements MouseListener {
	int			year, month, day;

	Hashtable	hashtable;

	File		file;

	JTextField	showDay[];

	JLabel		title[];

	Calendar	日历;

	int			星期几;

	NotePad		notepad	= null;

	Month		负责改变月;

	Year		负责改变年;

	String		星期[]	= { "星期日", "星期一", "星期二", "星期三", "星期四", "星期五", "星期六" };

	JPanel		leftPanel, rightPanel;

	// ----------------------------------------------------------------------------------------------------------------------------------------
	public CalendarPad(int year, int month, int day)
		{
			leftPanel = new JPanel();
			JPanel leftCenter = new JPanel();
			JPanel leftNorth = new JPanel();
			leftCenter.setLayout(new GridLayout(7, 7));

			rightPanel = new JPanel();
			this.year = year;
			this.month = month;
			this.day = day;
			负责改变年 = new Year(this);
			负责改变年.setYear(year);
			负责改变月 = new Month(this);
			负责改变月.setMonth(month);

			title = new JLabel[7];
			showDay = new JTextField[42];
			for (int j = 0; j < 7; j++)
				{
					title[j] = new JLabel();
					title[j].setText(星期[j]);
					title[j].setBorder(BorderFactory.createRaisedBevelBorder());
					leftCenter.add(title[j]);
				}
			title[0].setForeground(Color.red);
			title[6].setForeground(Color.blue);

			for (int i = 0; i < 42; i++)
				{
					showDay[i] = new JTextField();
					showDay[i].addMouseListener(this);
					showDay[i].setEditable(false);
					leftCenter.add(showDay[i]);
				}

			日历 = Calendar.getInstance();
			Box box = Box.createHorizontalBox();
			box.add(负责改变年);
			box.add(负责改变月);
			leftNorth.add(box);
			leftPanel.setLayout(new BorderLayout());
			leftPanel.add(leftNorth, BorderLayout.NORTH);
			leftPanel.add(leftCenter, BorderLayout.CENTER);
			leftPanel.add(new Label("请在年份输入框输入所查年份(负数表示公元前),回车确定"),
					BorderLayout.SOUTH);
			leftPanel.validate();
			Container con = getContentPane();
			JSplitPane split = new JSplitPane(JSplitPane.HORIZONTAL_SPLIT,
					leftPanel, rightPanel);

			con.add(split, BorderLayout.CENTER);
			con.validate();

			hashtable = new Hashtable();
			file = new File("日历记事本.txt");
			if (!file.exists())
				{
					try
						{
							FileOutputStream out = new FileOutputStream(file);
							ObjectOutputStream objectOut = new ObjectOutputStream(
									out);
							objectOut.writeObject(hashtable);
							objectOut.close();
							out.close();
						} catch (IOException e)
						{
						}
				}

			notepad = new NotePad(this);
			rightPanel.add(notepad);

			设置日历牌(year, month);
//			addWindowListener(new WindowAdapter() {
//				public void windowClosing(WindowEvent e) {
//					System.exit(0);
//				}
//			});
			setVisible(true);
			setBounds(100, 50, 524, 285);
			validate();
		}
//	----------------------------------------------------------------------------------------------------------------------------------------
	public void 设置日历牌(int year, int month) {
		日历.set(year, month - 1, 1);

		星期几 = 日历.get(Calendar.DAY_OF_WEEK) - 1;
		if (month == 1 || month == 2 || month == 3 || month == 5 || month == 7
				|| month == 8 || month == 10 || month == 12)
			{
				排列号码(星期几, 31);
			}
		else if (month == 4 || month == 6 || month == 9 || month == 11)
			{
				排列号码(星期几, 30);
			}
		else if (month == 2)
			{
				if ((year % 4 == 0 && year % 100 != 0) || (year % 400 == 0))
					{
						排列号码(星期几, 29);
					}
				else
					{
						排列号码(星期几, 28);
					}
			}
	}
//	----------------------------------------------------------------------------------------------------------------------------------------
	public void 排列号码(int 星期几, int 月天数) {
		for (int i = 星期几, n = 1; i < 星期几 + 月天数; i++)
			{
				showDay[i].setText("" + n);
				if (n == day)
					{
						showDay[i].setForeground(Color.green);
						showDay[i]
								.setFont(new Font("TimesRoman", Font.BOLD, 20));
					}
				else
					{
						showDay[i]
								.setFont(new Font("TimesRoman", Font.BOLD, 12));
						showDay[i].setForeground(Color.black);
					}
				if (i % 7 == 6)
					{
						showDay[i].setForeground(Color.blue);
					}
				if (i % 7 == 0)
					{
						showDay[i].setForeground(Color.red);
					}
				n++;
			}
		for (int i = 0; i < 星期几; i++)
			{
				showDay[i].setText("");
			}
		for (int i = 星期几 + 月天数; i < 42; i++)
			{
				showDay[i].setText("");
			}
	}
//	----------------------------------------------------------------------------------------------------------------------------------------
	public int getYear() {
		return year;
	}
//	----------------------------------------------------------------------------------------------------------------------------------------
	public void setYear(int y) {
		year = y;
		notepad.setYear(year);
	}
//	----------------------------------------------------------------------------------------------------------------------------------------
	public int getMonth() {
		return month;
	}
//	----------------------------------------------------------------------------------------------------------------------------------------
	public void setMonth(int m) {
		month = m;
		notepad.setMonth(month);
	}
//	----------------------------------------------------------------------------------------------------------------------------------------
	public int getDay() {
		return day;
	}
//	----------------------------------------------------------------------------------------------------------------------------------------
	public void setDay(int d) {
		day = d;
		notepad.setDay(day);
	}
//	----------------------------------------------------------------------------------------------------------------------------------------
	public Hashtable getHashtable() {
		return hashtable;
	}
//	----------------------------------------------------------------------------------------------------------------------------------------
	public File getFile() {
		return file;
	}
//	----------------------------------------------------------------------------------------------------------------------------------------
	public void mousePressed(MouseEvent e) {
		JTextField source = (JTextField) e.getSource();
		source.setBackground(new Color(204, 204, 255));
		source.setForeground(new Color(204, 204, 255));
		try
			{
				day = Integer.parseInt(source.getText());
				notepad.setDay(day);
				notepad.设置信息条(year, month, day);
				notepad.设置文本区(null);
				notepad.获取日志内容(year, month, day);
			} catch (Exception ee)
			{
			}
	}
//	----------------------------------------------------------------------------------------------------------------------------------------
	public void mouseClicked(MouseEvent e) {
	}
//	----------------------------------------------------------------------------------------------------------------------------------------
	public void mouseReleased(MouseEvent e) {
	}
//	----------------------------------------------------------------------------------------------------------------------------------------
	public void mouseEntered(MouseEvent e) {
	}
//	----------------------------------------------------------------------------------------------------------------------------------------
	public void mouseExited(MouseEvent e) {
	}
//	----------------------------------------------------------------------------------------------------------------------------------------
	public static void main(String args[]) {
		Calendar calendar = Calendar.getInstance();
		int y = calendar.get(Calendar.YEAR);
		int m = calendar.get(Calendar.MONTH) + 1;
		int d = calendar.get(Calendar.DAY_OF_MONTH);
		new CalendarPad(y, m, d);
	}
}

⌨️ 快捷键说明

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