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

📄 calendardesign.java

📁 用JAVA做的日历 功能强大 你可以嵌入到程序
💻 JAVA
字号:
import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.FocusEvent;
import java.awt.event.FocusListener;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.text.ParseException;

import java.util.Calendar;

public class CalendarDesign extends JFrame implements ActionListener{
    
	 private Calendar date;
	 private JComboBox yearCombo;
	 private JComboBox monthCombo;
	 private JTextField  dayField;
	 private Popup mypopup=null;
	 private Point pos;
	 private  JPanel datePanel,panel1,dayweekPanel,weekPanel,dayPanel,wholePanel;
	 private Container container;
	 private JButton up,down,clickdate;
	 int number;
	 private JButton exit;
	 private JPanel exitPanel,panelall;
	 int clickflag=1;
	 private JTextField showdate;
	 private JLabel today=new JLabel();
	 private String week[]={"  日   ","  一   ","  二    "," 三   "," 四   ","  五   ","  六   "};
	 private 	String month[]={"一月","二月","三月","四月","五月","六月","七月","八月","九月","十月","十一月","十二月"};
	 private	JLabel weeklabel[]=new JLabel[7];
	 private JToggleButton buttonDay[]=new JToggleButton[42],buttonMid;//JToggleButton与JButton的区别一个按下去弹不上来,一个能弹上来

	public CalendarDesign()
	{
		JPanel mid=new JPanel();
		
	date= Calendar.getInstance();  		  		  
	//System.out.println("YEAR: " + date.get(Calendar.YEAR));   
	//System.out.println("MONTH: " + date.get(Calendar.MONTH));   
	//System.out.println("DAY_OF_MONTH: " + date.get(Calendar.DAY_OF_MONTH));


	wholePanel=new JPanel();
	wholePanel.setLayout(new BorderLayout());


	  number=date.get(Calendar.YEAR)/10;
	 
		container=getContentPane();
		
		
		showdate=new JTextField(6);
		showdate.setText(date.get(Calendar.YEAR)+"-"+(date.get(Calendar.MONDAY)+1)+"-"+date.get(Calendar.DAY_OF_MONTH));
		showdate.setBackground(Color.white);
		showdate.setEditable(false);
		
		clickdate=new JButton(new ImageIcon("click.jpg"));
		clickdate.setPreferredSize(new Dimension(20,20));	
		clickdate.addActionListener(this);
			
		mid.add(showdate);
		mid.add(clickdate);
		container.add(mid);
		
		datePanel=new JPanel();
		up=new JButton("▲");
		up.setPreferredSize(new Dimension(20,15));
		up.setMargin(new Insets(0,0,0,0));
		up.addActionListener(new ActionListener(){
			
			public void actionPerformed(ActionEvent event) {
				number++;
				yearCombo.removeAllItems();				
				for(int i = 0;i<=9;i++)
					yearCombo.addItem(" "+number+i+" ");
				showday();
			}
		});
		
		down=new JButton("▼");
		down.setPreferredSize(new Dimension(20,15));
		down.setMargin(new Insets(0,0,0,0));
		down.addActionListener(new ActionListener(){
			
			public void actionPerformed(ActionEvent event) {
			
				
				yearCombo.removeAllItems();
				number--;
				for(int i = 0;i<=9;i++)
					yearCombo.addItem(" "+number+i+" ");
				showday();
			}
		});
		panel1=new JPanel();
		panel1.setLayout(new GridLayout(2,1));
		panel1.add(up);
		panel1.add(down);
		datePanel.add(panel1);
		yearCombo=new JComboBox();
        yearCombo.setAlignmentX(40);
        yearCombo.setMaximumRowCount(10);
		for(int i = 0;i<=9;i++)
			yearCombo.addItem(" "+number+i+" ");
		yearCombo.setSelectedIndex(date.get(Calendar.YEAR)%100);  
		yearCombo.addActionListener(new ActionListener(){
		public void actionPerformed(ActionEvent event) {
	        	
			date.set(Calendar.YEAR,number*10+yearCombo.getSelectedIndex());						
				System.out.println(date.get(Calendar.YEAR));		
				showday();
			}
		});
		datePanel.add(yearCombo);
		
		monthCombo=new JComboBox(month);
		monthCombo.setSize(60,26);
		monthCombo.setMaximumRowCount(12);
		monthCombo.setSelectedIndex(date.get(Calendar.MONTH));
		monthCombo.addActionListener(new ActionListener(){
			public void actionPerformed(ActionEvent event)
			{  				
			date.set(Calendar.MONTH,monthCombo.getSelectedIndex());
			System.out.println(date.get(Calendar.MONTH));
			
			showday();
			}
		});
		datePanel.add(monthCombo);
		  
		dayField=new JTextField();
		dayField.setPreferredSize(new Dimension(50,26));
		dayField.setText(String.valueOf(date.get(Calendar.DAY_OF_MONTH)));
		dayField.setHorizontalAlignment(SwingConstants.CENTER); 		
		dayField.setEditable(true);
		dayField.setBackground(Color.white);
	
		datePanel.add(dayField);
		wholePanel.add(datePanel,"North");
		dayweekPanel=new JPanel();
		dayweekPanel.setLayout(new BorderLayout());
	
		weekPanel=new JPanel();
		
		for(int i=0;i<7;i++)
			{
			weeklabel[i]=new JLabel(week[i]);
		    weekPanel.add(weeklabel[i]);
			}		
		dayweekPanel.add(weekPanel,"North");
		dayPanel=new JPanel();
		dayPanel.setLayout(new GridLayout(6,7));
		for(int i=0;i<42;i++)
		{
		buttonDay[i]=new JToggleButton("  ");
		buttonDay[i].setBorder(null);		  
		buttonDay[i].setBackground(SystemColor.textInactiveText); 
		buttonDay[i].setPreferredSize(new Dimension(20,20));
		buttonDay[i].setFont(new Font("SansSerif",Font.PLAIN,15));
		dayPanel.add(buttonDay[i]);
		buttonDay[i].addActionListener(new ActionListener(){
	     
		public void actionPerformed(ActionEvent event) {
					
			int day=Integer.parseInt(event.getActionCommand());
			date.set(Calendar.DAY_OF_MONTH,day);
			//System.out.println(date.get(Calendar.DAY_OF_WEEK));
			buttonMid.setSelected(false);
			JToggleButton buttonClik=(JToggleButton)event.getSource();	
			buttonClik.setSelected(true);
			buttonMid=buttonClik;			
			dayField.setText(""+day);
			showdate.setText(date.get(Calendar.YEAR)+"-"+(date.get(Calendar.MONDAY)+1)+"-"+day);
			
		}
		});		   
		}
	    
		exit=new JButton(new ImageIcon("exit.jpg"));	
		exit.setPreferredSize(new Dimension(17,15));
		exit.setMargin(new Insets(0,0,0,0));	
		exit.addActionListener(new ActionListener(){
			public void actionPerformed(ActionEvent arg0) {
			
					mypopup.hide();
					clickflag=1;
			}
			
		});
		
		  Calendar todaydate= Calendar.getInstance();
         today.setText("                      今天 "+todaydate.get(Calendar.YEAR)+"-"+(todaydate.get(Calendar.MONDAY)+1)+"-"+todaydate.get(Calendar.DAY_OF_MONTH));
		 today.setHorizontalAlignment(SwingConstants.CENTER);
         exitPanel=new JPanel();
         exitPanel.setLayout(new BorderLayout());
         exitPanel.add(today,"West");
		 exitPanel.add(exit,"East");
		
		panelall=new JPanel(new BorderLayout());
		panelall.setBackground(UIManager.getColor("InternalFrame.activeTitleGradient")); 
		panelall.setBorder(BorderFactory.createEtchedBorder()); 
		panelall.add(exitPanel,"North");
		panelall.add(wholePanel,"Center");
		
		dayweekPanel.add(dayPanel,"Center");
		wholePanel.add(dayweekPanel,"Center");
		setSize(250,250);
		setVisible(true);
	
	}
	
	public static void main(String[] args)throws ParseException {
		
          CalendarDesign app=new CalendarDesign();
          app.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
          
	}
	public void showday()
	{  
		
	
		int num=date.get(Calendar.DAY_OF_MONTH);		
		int num1=date.getActualMaximum(Calendar.DAY_OF_MONTH);//本月份的天数	    
		date.set(Calendar.DAY_OF_MONTH,1);
		int n=1;
		int numm=date.get(Calendar.DAY_OF_WEEK);
		date.set(Calendar.DAY_OF_MONTH,num);
		
		for(int i=0;i<42;i++)
		{  
	        if(i>=numm-1&&i<numm+num1-1)
	        {	        	
	        buttonDay[i].setText(""+n);
			buttonDay[i].setEnabled(true);
			if(n==num)
				{
				buttonDay[i].setSelected(true);
				buttonMid=buttonDay[i];
				}
			else buttonDay[i].setSelected(false);
			n++;			
	        }
	        else 
	        	{
	        	buttonDay[i].setEnabled(false);
	        	buttonDay[i].setSelected(false);
	        	buttonDay[i].setText(" ");
	        	}
		}				
	}

	public void actionPerformed(ActionEvent event) {
		
		if(clickflag==1)
	    {
	  	pos=this.getLocationOnScreen();	
		mypopup = PopupFactory.getSharedInstance().getPopup(this,
				panelall,pos.x+down.getLocation().x+200,pos.y+down.getLocation().y+55);
		mypopup.show();
		showday();
		   clickflag=0;
	    }
	else{
		mypopup.hide();clickflag=1;
	   }
	}	
}   


⌨️ 快捷键说明

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