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

📄 untitled1.java

📁 程序包括小型的飞机与导弹游戏的源代码和记事本的源代码
💻 JAVA
字号:
package com.zk1;

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import java.util.*;

public class Untitled1 extends JFrame
{
    GregorianCalendar today=new GregorianCalendar();
    JPanel p1=new JPanel();
    JPanel p2=new JPanel(new BorderLayout());
    JPanel p3=new JPanel(new GridLayout(1,7));
    JPanel p4=new JPanel();
    int[] days={31,28,31,30,31,30,31,31,30,31,30,31};
    int[] ldays={31,29,31,30,31,30,31,31,30,31,30,31};
    JLabel yearLabel=new JLabel("请输入年份");
    JLabel monthLabel=new JLabel("请输入月份");
    JLabel dateLabel=new JLabel("请输入日期");
    JComboBox yearList=null;
    JComboBox monthList=null;
    JComboBox dateList=null;
    JLabel [] weekdayLabel=new JLabel[7];
    Font f=new Font("宋体",Font.BOLD,42);
    private boolean isLeapYear(int year)
    {
        return year%4==0&&year%100!=0||year%400==0;
    }
    public Untitled1(String title)
    {
        super(title);
        this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        this.setResizable(false);
        this.getContentPane().add(p1,BorderLayout.NORTH);
        this.getContentPane().add(p2);
        //p2.setBackground(Color.BLACK);
        initComponents();
    }
    private void initComponents()
    {
        String[] years=new String[41];
        for(int i=0;i<years.length;i++)
            years[i]=String.valueOf(today.get(Calendar.YEAR)-20+i);
        yearList=new JComboBox(years);
        yearList.setSelectedIndex(20);

        String[] months={"1","2","3","4","5","6","7","8","9","10","11","12"};
        monthList=new JComboBox(months);
        monthList.setSelectedIndex(today.get(Calendar.MONTH));

        String[] dates=null;
        if(isLeapYear(today.get(Calendar.YEAR)))
            dates=new String[ldays[today.get(Calendar.MONTH)]];
        else
            dates=new String[days[today.get(Calendar.MONTH)]];
        for(int i=0;i<dates.length;i++)
            dates[i]=String.valueOf(i+1);
        dateList=new JComboBox(dates);
        dateList.setSelectedIndex(today.get(Calendar.DAY_OF_MONTH)-1);

        p1.add(yearLabel);
        p1.add(new JScrollPane(yearList));
        p1.add(monthLabel);
        p1.add(new JScrollPane(monthList));
        p1.add(dateLabel);
        p1.add(new JScrollPane(dateList));

        weekdayLabel[0]=new JLabel("SUN",SwingConstants.CENTER);
        weekdayLabel[0].setForeground(Color.RED);
        weekdayLabel[1]=new JLabel("MON",SwingConstants.CENTER);
        weekdayLabel[2]=new JLabel("TUE",SwingConstants.CENTER);
        weekdayLabel[3]=new JLabel("WED",SwingConstants.CENTER);
        weekdayLabel[4]=new JLabel("THU",SwingConstants.CENTER);
        weekdayLabel[5]=new JLabel("FRI",SwingConstants.CENTER);
        weekdayLabel[6]=new JLabel("SAT",SwingConstants.CENTER);
        weekdayLabel[6].setForeground(Color.RED);

        p2.add(p3,BorderLayout.NORTH);
        p2.add(p4);
        for(int i=0;i<weekdayLabel.length;i++)
            p3.add(weekdayLabel[i]);

        addDateLabel();
        initComboBoxListener();
    }
    private void initComboBoxListener()
    {
        dateList.addItemListener(new ItemListener(){
            public void itemStateChanged(ItemEvent e)
            {
                addDateLabel();
            }
        });
        monthList.addItemListener(new ItemListener(){
            public void itemStateChanged(ItemEvent e)
            {
                updateDateList();
                addDateLabel();
            }
        });
        yearList.addItemListener(new ItemListener(){
            public void itemStateChanged(ItemEvent e)
            {
                updateDateList();
                addDateLabel();
            }
        });
    }
    private void updateDateList()
    {
        dateList.removeAllItems();
        String[] dates=null;
        if(isLeapYear(Integer.parseInt(String.valueOf(yearList.getSelectedItem()))))
            dates=new String[ldays[monthList.getSelectedIndex()]];
        else
            dates=new String[days[monthList.getSelectedIndex()]];
        for(int i=0;i<dates.length;i++)
        {
            dates[i] = String.valueOf(i + 1);
            dateList.addItem(dates[i]);
        }
        dateList.validate();
    }
    private void addDateLabel()
    {
        p4.removeAll();
        int year=Integer.parseInt(String.valueOf(yearList.getSelectedItem()));
        int month=monthList.getSelectedIndex();
        int date=dateList.getSelectedIndex()+1;
        GregorianCalendar today=new GregorianCalendar(year,month,date);
        GregorianCalendar firstDay=new GregorianCalendar(year,month,1);
        int first=firstDay.get(Calendar.DAY_OF_WEEK);
        int rows=(first-1+dateList.getItemCount()+6)/7;
        p4.setLayout(new GridLayout(rows,7));
        JLabel[] dateLabels=new JLabel[rows*7];
        for(int i=0;i<dateLabels.length;i++)
        {
            if(i<first-1)
                dateLabels[i]=new JLabel();
            else if(i<=dateList.getItemCount()+first-2)
                dateLabels[i]=new JLabel(String.valueOf(i-first+2),SwingConstants.CENTER);
            else
                dateLabels[i]=new JLabel();
            dateLabels[i].setFont(f);
            if((i+1)%7==0||i%7==0)
                dateLabels[i].setForeground(Color.RED);
            p4.add(dateLabels[i]);
        }
        if(dateLabels.length!=0)
            dateLabels[dateList.getSelectedIndex()+first-1].setForeground(Color.BLUE);
        p4.validate();
    }
    public static void main(String[] args)
    {
        JFrame.setDefaultLookAndFeelDecorated(true);
        Untitled1 frame=new Untitled1("日历");
        frame.setSize(600,400);
        frame.setVisible(true);
    }
}

⌨️ 快捷键说明

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