mycalender.java

来自「这是一个非常简单的日历」· Java 代码 · 共 178 行

JAVA
178
字号
package com.JavaSeries;

import java.awt.*;

import javax.swing.*;

import java.util.*;

import java.awt.event.*;

public class MyCalender  
{
	JPanel panel1 = new JPanel();

	JPanel panel2 = new JPanel(new BorderLayout());

	JPanel panel3 = new JPanel(new GridLayout(7, 7));   

	JLabel[] label = new JLabel[49];

	JLabel g_label = new JLabel("公历:");

	JLabel y_label = new JLabel("年");

	JLabel m_label = new JLabel("月");

	JComboBox year = new JComboBox();

	JComboBox month = new JComboBox();

	Calendar rightNow=Calendar.getInstance(); 	

    public int ReturnWeek(int year,int month) 
    {

        int dayOfWeek;

        rightNow.set(year,month,1); 

        dayOfWeek=(int)(rightNow.get(Calendar.DAY_OF_WEEK));

        return dayOfWeek;

    } 
    

    public void ReSetDay(int week,int year,int month) 
     {

        int dayScore=0,count=1; 

        Calendar cal=Calendar.getInstance();
        
        cal.set(year,month+1,1);

        cal.add(Calendar.MONTH,-1); 

        dayScore=cal.getActualMaximum(Calendar.DAY_OF_MONTH);

        for (int i=7;i<49;i++)  
        { 

            label[i].setText("");

        }

        week+=6; 

        dayScore+=week;

        for (int i=week;i<dayScore; i++,count++) 
        {
         	label[i].setText(String.valueOf(count));

        }		

    }

    MyCalender()
    {
    	 JFrame frame=new JFrame("万年历");

         frame.setSize(300,370);
         
         frame.setLocation(200,200);
         
         panel1.add(g_label);

         panel1.add(year);

         panel1.add(y_label);

         panel1.add(month);
         
         panel1.add(m_label);

         for (int i=0; i<49;i++) 
         {
         	label[i]=new JLabel("  ",JLabel.CENTER);

            panel3.add(label[i]);   //把指定组件加入到面板
         }
         
         panel2.add(panel1, BorderLayout.NORTH);
         
         panel2.add(panel3, BorderLayout.CENTER); 

         int nowYear, nowMonth, firstDay;

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

         for (int i=0;i<7;i++)  
         {
             label[i].setText(week[i]);     //更改文本内容
         }   

         for (int i=1;i<=10000;i++)  
         {
             year.addItem(i);        //在下拉式列表中增加年份
         }

         for (int i=1; i<13;i++) 
         {
             month.addItem(i);
         }

         nowYear=(int)(rightNow.get(Calendar.YEAR));
         
         nowMonth=(int)(rightNow.get(Calendar.MONTH));  
         
         year.setSelectedIndex(nowYear-1);    //设置所选择项

         month.setSelectedIndex(nowMonth); 

         firstDay=ReturnWeek(nowYear,nowMonth);
         
         ReSetDay(firstDay,nowYear,nowMonth);
         
         class ClockAction implements ActionListener  
         {
         	public void actionPerformed(ActionEvent arg0)  
         	{
         		int c_year,c_month,c_week;
         		
         		c_year=Integer.parseInt(year.getSelectedItem().toString()); //把得到的年份转换成整数

                 c_month=Integer.parseInt(month.getSelectedItem().toString()) - 1; 

                 c_week=ReturnWeek(c_year,c_month); 
                 
                 ReSetDay(c_week,c_year,c_month); 
              }
         }

         year.addActionListener(new ClockAction());    //增加动作监听器

         month.addActionListener(new ClockAction());

         frame.setContentPane(panel2);

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

     }
  
    public static void main(String[] args)  
    {

        JFrame.setDefaultLookAndFeelDecorated(true);
              
        new MyCalender();
        
    }

}

⌨️ 快捷键说明

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