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

📄 fengjingrili(正确的).java

📁 用java 编写的风景日历
💻 JAVA
字号:
// Decompiled by Jad v1.5.8g. Copyright 2001 Pavel Kouznetsov.
// Jad home page: http://www.kpdus.com/jad.html
// Decompiler options: packimports(3) ansi 
// Source File Name:   FengJingRiLi.java

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

import javax.swing.*;

public class FengJingRiLi extends JFrame implements ActionListener
{
    
    JComboBox Month;
    JComboBox tu;
    JComboBox Year;
    JLabel Year_l;
    JLabel tu_l;
    JLabel Month_l;
    GregorianCalendar now_date;
    JButton button_day[];
    JButton button_ok;
    JButton button_today;
    JLabel xday;
    int now_year;
    int now_month;
    int n;
    Font myFont;
    String year_int;
    int month_int;
    String names[] = {
        "1.jpg", "2.jpg", "3.jpg", "4.jpg", "5.jpg", "6.jpg", "7.jpg", "8.jpg", "9.jpg", "10.jpg", 
        "11.jpg", "12.jpg", "13.jpg", "14.jpg", "15.jpg", "16.jpg", "17.jpg", "18.jpg", "19.jpg", "20.jpg", 
        "21.jpg", "22.jpg", "23.jpg", "24.jpg", "25.jpg", "26.jpg", "27.jpg", "28.jpg", "29.jpg", "30.jpg", 
        "31.jpg"
    };
    private Icon icons[];
    JPanel pane_ym;
    JPanel pane_day;
    JPanel tm;
    JPanel z;
    JPanel o;
    JPanel p;
    JPanel s;
    JPanel pane_parent;

    public FengJingRiLi()
    {
        //初始化各个控件
    	super("风景日历");
        Month = new JComboBox();
        tu = new JComboBox();
        Year = new JComboBox();
        Year_l = new JLabel("Year::");
        tu_l = new JLabel("pho::");
        Month_l = new JLabel("Month::");
        now_date = new GregorianCalendar();
        button_day = new JButton[49];
        button_ok = new JButton("确定");
        button_today = new JButton("今天");
        xday = new JLabel();
        now_year = now_date.get(Calendar.YEAR);
        now_month = now_date.get(Calendar.MONTH);
        n = now_date.get(Calendar.DAY_OF_MONTH);
        myFont = new Font("TimesRoman", 3, 100);
        icons=new ImageIcon[names.length];
        year_int = null;
//        icons = (new Icon[] {
//            new ImageIcon(names[0]), new ImageIcon(names[1]), new ImageIcon(names[2]), new ImageIcon(names[3]), new ImageIcon(names[4]), new ImageIcon(names[5]), new ImageIcon(names[6]), new ImageIcon(names[7]), new ImageIcon(names[8]), new ImageIcon(names[9]), 
//            new ImageIcon(names[10]), new ImageIcon(names[11]), new ImageIcon(names[12]), new ImageIcon(names[13]), new ImageIcon(names[14]), new ImageIcon(names[15]), new ImageIcon(names[16]), new ImageIcon(names[17]), new ImageIcon(names[18]), new ImageIcon(names[19]), 
//            new ImageIcon(names[20]), new ImageIcon(names[21]), new ImageIcon(names[22]), new ImageIcon(names[23]), new ImageIcon(names[24]), new ImageIcon(names[25]), new ImageIcon(names[26]), new ImageIcon(names[27]), new ImageIcon(names[28]), new ImageIcon(names[29]), 
//            new ImageIcon(names[30])
//        });
        for(int i=0;i<names.length;i++){
        	icons[i]=new ImageIcon(names[i]);
        }
        pane_ym = new JPanel();
        pane_day = new JPanel();
        tm = new JPanel();
        //z = new JPanel();
        o = new JPanel();
        p = new JPanel();
        s = new JPanel();
        pane_parent = new JPanel();
        setDefaultCloseOperation(2);
        //addWindowListener(new WindowAdapter() {

        //    public void windowClose(WindowEvent windowevent)
         //   {
         //       System.exit(0);
         //   }

            //final FengJingRiLi this$0;
            //{
            //    this$0 = FengJingRiLi.this;
            //    super();
           // }
        //}
       //);
        
        //设置年组合框中的内容,从1998-2028
        for(int i = now_year - 10; i <= now_year + 20; i++)
            Year.addItem((new StringBuilder()).append(i).append("").toString());
        //设置月份组合框中的内容,1-12
        for(int j = 1; j < 13; j++)
            Month.addItem((new StringBuilder()).append(j).append("").toString());
        //初始化为选中2008年
        Year.setSelectedIndex(10);
        //设置图片组合框中的内容,将图片的文件名显示出来
        for(int k = 1; k < 4; k++)
            tu.addItem((new StringBuilder()).append(k).append("").toString());
        
        //将所有的控件按面板组织,添加到窗口中
        pane_ym.add(Year_l);
        pane_ym.add(Year);
        Month.setSelectedIndex(now_month);
        pane_ym.add(Month_l);
        pane_ym.add(Month);
        pane_ym.add(button_ok);
        pane_ym.add(button_today);
        tu = new JComboBox(names);
        tu_l = new JLabel(icons[0]);
        xday.setText((new StringBuilder()).append(n).append("").toString());
        //当图组合框中的内容变化时,右边标签位置的图片跟着变化
        tu.addItemListener(new ItemListener() {

            public void itemStateChanged(ItemEvent itemevent)
            {
                tu_l.setIcon(icons[tu.getSelectedIndex()]);
            }

             //final FengJingRiLi this$0;
            //{
             //   this$0 = FengJingRiLi.this;
             //   super();
            //}
        }
        );
        button_ok.addActionListener(this);
        button_today.addActionListener(this);
        pane_day.setLayout(new GridLayout(7, 7));
        for(int l = 0; l < 49; l++)
        {
            button_day[l] = new JButton(" ");
            pane_day.add(button_day[l]);
            button_day[l].addActionListener(this);
        }

        xday.setFont(myFont);
        setDay();
        o.setLayout(new FlowLayout(3));
        pane_parent.setLayout(new BorderLayout());
        tm.setLayout(new FlowLayout(3));
        p.setLayout(new GridLayout(2, 1));
        s.setLayout(new FlowLayout(1));
        pane_ym.add(tu);
        o.add(p);
        o.add(tm);
        tm.add(tu_l);
        p.add(s);
        p.add(pane_parent);
        s.add(xday);
        setContentPane(pane_day);
        setContentPane(pane_ym);
        pane_parent.add(pane_day, "South");
        pane_parent.add(pane_ym, "North");
        setContentPane(o);
        o.setBackground(Color.DARK_GRAY);
        pack();
        setVisible(true);
    }
    //设置一个月的日历显示
    void setDay()
    {
        year_int = Year.getSelectedItem().toString();
        month_int = Month.getSelectedIndex();
        int i = Integer.parseInt(year_int) ;
        //date代表选定年和选定月份的第一天
        GregorianCalendar date = new GregorianCalendar(i, month_int, 1);  
        GregorianCalendar gregoriancalendar = new GregorianCalendar();
        String as[] = {
            "Sun", "Mon", "Tue", "Wed", "Thur", "Fri", "Sat"
        };
        byte byte0 = 0;
        int j = 0;
        //第一行按钮
        for(int k = 0; k < 7; k++)
            button_day[k].setText(as[k]);
        //month_int == 0 表示一月份有31天,其他类推 ,4,6,8,11月为30天,闰年2月份29天
        if(month_int == 0 || month_int == 2 || month_int == 4 || month_int == 6 || month_int == 7 || month_int == 9 || month_int == 11)
            byte0 = 31;
        else  
        if(month_int == 3 || month_int == 5 || month_int == 7 || month_int == 10)
            byte0 = 30;
        else
        if(gregoriancalendar.isLeapYear(i))
            byte0 = 29;
        else
            byte0 = 28;
        //第一行按钮为sun--sat,所以按钮从第二行算起,要+7  ,Calendar.DAY_OF_WEEK得到当月的第一天是星期几
        j = 7 + date.get(Calendar.DAY_OF_WEEK)-1;
        
        int l = 1;
       //从第j个按钮开始显示,知道月底,若是星期六和星期天用红色表示,
       for(int i1 = j; i1 < j + byte0; i1++)
        {
            if(i1 % 7 == 0 || i1 == 13 || i1 == 20 || i1 == 27 || i1 == 48 || i1 == 34 || i1 == 41)
            {
                button_day[i1].setForeground(Color.RED);
                button_day[i1].setEnabled(true);
                button_day[i1].setText((new StringBuilder()).append(l).append("").toString());
            } else
            {
                button_day[i1].setText((new StringBuilder()).append(l).append("").toString());
                button_day[i1].setEnabled(true);
            }
            l++;
        }
       
        /*if(j == 0)
        {
            for(int j1 = byte0; j1 < 49; j1++)
                button_day[j1].setText(" ");

        } else*/
       //其他按钮显示内容为空
        
            for(int k1 = 7; k1 < j; k1++)
            {
                button_day[k1].setText(" ");
                button_day[k1].setEnabled(false);
            }

            for(int l1 = j + byte0; l1 < 49; l1++)
            {
                button_day[l1].setText(" ");
                button_day[l1].setEnabled(false);
            }

        
    }

    public void actionPerformed(ActionEvent actionevent)
    {
        year_int = Year.getSelectedItem().toString();
        month_int = Month.getSelectedIndex();
        int i = Integer.parseInt(year_int);
        GregorianCalendar date = new GregorianCalendar(i, month_int, 1);
        int j = date.get(Calendar.DAY_OF_WEEK)-1;
        if(actionevent.getSource() == button_ok)
        {
            setDay();
        } else
        {
            for(int k = j + 7; k < 49; k++)
                if(actionevent.getSource() == button_day[k])
                {
                    int l = j + 6;
                    int i1 = k - l;
                    xday.setText((new StringBuilder()).append(i1).append("").toString());
                    tu_l.setIcon(icons[i1 - 1]);
                }

        }
        if(actionevent.getSource() == button_today)
        {
            Year.setSelectedIndex(10);
            Month.setSelectedIndex(now_month);
            setDay();
            xday.setText((new StringBuilder()).append(n).append("").toString());
        }
    }

    public static void main(String args[])
    {
        FengJingRiLi fengjingrili = new FengJingRiLi();
    }

    

}

⌨️ 快捷键说明

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