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

📄 denglu.java

📁 这是我同学做的一个万年历
💻 JAVA
字号:
//package com.JavaSeries.Java;
import javax.swing.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
//import java.awt.event.*;
import java.awt.*;
import java.util.*;

//import java.text.*;

public class denglu implements ActionListener {

	// 声明组件
	int k = 0;//某年某月某日所对应的星期几

	int l = 0;//后面查找与显示今天日期所用data[]的index.

	Calendar now = Calendar.getInstance();

	Integer yearnow = now.get(Calendar.YEAR);//本地年

	String nowyear = yearnow.toString();

	Integer monthnow = now.get(Calendar.MONTH) + 1;

	String nowmonth = monthnow.toString();

	Integer d = now.get(Calendar.DATE);

	String nowdate = d.toString();

	JLabel jlabel = new JLabel("公历:", SwingConstants.CENTER);

	String str1[] = { nowyear, "1995" };

	JComboBox jcombobox1 = new JComboBox(str1);

	JLabel jlabel2 = new JLabel("年", SwingConstants.LEFT);

	String str2[] = { nowmonth, "1", "2", "3", "4", "5", "6", "7", "8", "9",
			"10", "11", "12" };

	JComboBox jcombobox2 = new JComboBox(str2);

	JLabel jlabel3 = new JLabel("月", SwingConstants.LEFT);

	JLabel time = new JLabel("今天:");

	JTextField jtextfield = new JTextField();

	JLabel[] xingqi = new JLabel[7];

	JLabel[] data = new JLabel[42];

	// 构造方法
	public denglu() {
		// 建立框架

		JFrame frame = new JFrame("万年历");
		frame.setSize(440, 330);
		frame.setLocation(500, 500);
        //三个容器
		JPanel jpanel1 = new JPanel();
		JPanel jpanel2 = new JPanel();
		JPanel jpanel3 = new JPanel();
		
		Container contentPane = frame.getContentPane();
		contentPane.setBackground(Color.lightGray);
	
		jpanel1.setLayout(new FlowLayout());
		jpanel2.setLayout(new GridLayout(1, 7, 2, 5));
		jpanel3.setLayout(new GridLayout(6, 7, 2, 1));

		jpanel1.add(jlabel);
		jpanel1.add(jcombobox1);
		jpanel1.add(jlabel2);
		jpanel1.add(jcombobox2);
		jpanel1.add(jlabel3);

		jpanel1.add(time);
		jpanel1.add(jtextfield);
		jtextfield.setEditable(false);//设置文本框不可编辑

		jcombobox1.setBackground(Color.getHSBColor(20, 25, 36));
		jcombobox2.setBackground(Color.getHSBColor(20, 25, 36));

		xingqi[0] = new JLabel("日");
		xingqi[1] = new JLabel("一");
		xingqi[2] = new JLabel("二");
		xingqi[3] = new JLabel("三");
		xingqi[4] = new JLabel("四");
		xingqi[5] = new JLabel("五");
		xingqi[6] = new JLabel("六");
		xingqi[0].setForeground(Color.red);
		xingqi[6].setForeground(Color.red);

		for (int j = 0; j < 7; j++) {
			jpanel2.add(xingqi[j]);
			Font f1 = new Font("宋体", Font.PLAIN, 20);
			xingqi[j].setFont(f1);
			xingqi[j].setHorizontalAlignment(SwingConstants.CENTER);
		}

		for (Integer i = 0; i < 37; i++) {
			// String st=i.toString();
			data[i] = new JLabel();
			data[i].setHorizontalAlignment(SwingConstants.CENTER);
			jpanel3.add(data[i]);

		}
		contentPane.add(jpanel1, BorderLayout.NORTH);
		contentPane.add(jpanel2, BorderLayout.CENTER);
		contentPane.add(jpanel3, BorderLayout.SOUTH);
		
		jpanel1.setBackground(Color.getHSBColor(20, 125, 36));
		jpanel2.setBackground(Color.getHSBColor(20, 205, 6));
		jpanel3.setBackground(Color.getHSBColor(20, 25, 156));
        //显示文本框文本
		jtextfield.setText(nowyear + "-" + nowmonth + "-" + nowdate);
		jtextfield.setBackground(Color.getHSBColor(20, 25, 36));

		for (Integer g = 1996; g <= 2050; g++) {
			jcombobox1.addItem(g.toString());
		}
        //设置周六日列为红色
		data[0].setForeground(Color.red);
		for (int i = 35; i >= 7; i -= 7) {
			data[i].setForeground(Color.red);
			data[i - 1].setForeground(Color.red);

		}
		//调用成员方法
		this.month_day();
        //设置今天显示为蓝色
		while (!nowdate.equals(data[l].getText())) {
			l++;
		}
		data[l].setForeground(Color.blue);

		// 设置监听器
		jcombobox1.addActionListener(this);
		jcombobox2.addActionListener(this);

		frame.setVisible(true);
		frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
	}

	// 事件处理方法
	public void actionPerformed(ActionEvent e) {

		for (int i = 0; i < 37; i++) {
			data[i].setText("");
		}
		this.month_day();
	}

	public void month_day() {
		// System.out.println(jcombobox1.getSelectedItem());
		// String year = str1[jcombobox1.getSelectedIndex()];
		
		//获取组合框内容
		String year = jcombobox1.getSelectedItem().toString();
		Integer y = Integer.parseInt(year);
		String month = str2[jcombobox2.getSelectedIndex()];
		Integer m = Integer.parseInt(month);
        //计算某年某月某日所对应星期几k
		int monthnum = 0;
		if (m == 2)
			if (y % 4 == 0 && y % 100 != 0 || y % 400 == 0)
				monthnum = 29;
			else
				monthnum = 28;
		else if (m == 4 | m == 6 | m == 9 | m == 11)
			monthnum = 30;
		else
			monthnum = 31;
		// System.out.println(monthnum);

		int c0 = y / 100;
		int y0 = (y % 1000) % 100;
		int anser = (c0 / 4) - 2 * c0 + y0 + (y0 / 4) + (13 * (m + 1) / 5);
		k = (anser + 70) % 7;
	    
		for (Integer i = 1; i <= monthnum; i++) {
			String st = i.toString();
			data[k].setText(st);
			Font f1 = new Font("宋体", Font.PLAIN, 30);
			data[k].setFont(f1);
			k++;
		}

		if (nowyear.equals(year) && nowmonth.equals(month))
			data[l].setForeground(Color.blue);
		else if ((l + 1) % 7 == 0 || l % 7 == 0)
			data[l].setForeground(Color.red);
		else
			data[l].setForeground(Color.black);

	}

	// class happen{
	public static void main(String[] args) {
		// denglu mm=
		new denglu();

		// while(true)
		// mm.month_day();
	}
}

⌨️ 快捷键说明

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