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

📄 jcalendar.java

📁 精美java 日历类,为GUI日期输入提供方便
💻 JAVA
📖 第 1 页 / 共 2 页
字号:


import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Dimension;
import java.awt.Frame;
import java.awt.GridLayout;
import java.awt.SystemColor;
import java.awt.Toolkit;
import java.awt.event.ActionEvent;
import java.awt.event.KeyEvent;
import java.awt.event.MouseEvent;
import java.awt.event.WindowEvent;
//import java.util.Calendar;
import java.util.GregorianCalendar;
import java.util.Locale;
import java.util.Date;
import java.util.StringTokenizer;

import javax.swing.BorderFactory;
import javax.swing.JButton;
import javax.swing.JDialog;
import javax.swing.JFrame;
import javax.swing.JInternalFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTextField;
import javax.swing.JToggleButton;
import javax.swing.SwingConstants;
import javax.swing.UIManager;

import com.gnt.rm.ui.BlocktsForm;
import com.gnt.rm.ui.HorizonDictForm;
import com.gnt.rm.ui.ProjectForm;
import com.gnt.rm.ui.QueryForm;
import com.gnt.rm.ui.StratumDictForm;

//import com.gnt.rm.ui.BlocktsForm;
//import com.gnt.rm.ui.HorizonDictForm;
//import com.gnt.rm.ui.ProjectForm;
//import com.gnt.rm.ui.StratumDictForm;

/**
 * <p>
 * Title: Swing日历
 * </p>
 * <p>
 * Description: 操作日期
 * </p>
 * 
 * @author dj2005
 * @version 1.0.1
 */

public class JCalendar extends JDialog {
	/**
	 * 
	 */
	private static final long serialVersionUID = -4936864041371143225L;

	// 主窗口
//	ProjectForm pf;
//
//	BlocktsForm bf;
//
//	StratumDictForm sf;
//
//	HorizonDictForm hf;

	// 显示panel
	JPanel jp = new JPanel();

	// 整体panel
	JPanel jj = new JPanel();

	// 动态表示年月日
	private int year = 0;

	private int month = 0;

	private int day = 0;

	// 主面板
	private JPanel Main = new JPanel();

	// 日面板
	private JPanel jPanelDay = new JPanel();

	// 月面板
	private JPanel jPanelMonth = new JPanel();

	// 年的输入位置
	private JTextField Year = new JTextField();

	// 月的输入位置
	private JTextField Month = new JTextField();

	// 减少月份
	private JButton MonthDown = new JButton();

	// 增加月份
	private JButton MonthUp = new JButton();

	private JPanel jPanelButton = new JPanel();

	// 减少年份
	private JButton YearDown = new JButton();

	// 增加年份
	private JButton YearUp = new JButton();

	// 显示日期的位置
	private JLabel Out = new JLabel();

	// 中国时区,以后可以从这里扩展可以设置时区的功能
	private Locale l = Locale.CHINESE;

	// 主日历
	private GregorianCalendar cal = new GregorianCalendar(l);

	// 星期面板
	private JPanel weekPanel = new JPanel();

	// 天按钮组
	private JToggleButton[] days = new JToggleButton[42];

	// 天面板
	private JPanel Days = new JPanel();

	// 标示
	private JLabel jLabel1 = new JLabel();

	private JLabel jLabel2 = new JLabel();

	private JLabel jLabel3 = new JLabel();

	private JLabel jLabel4 = new JLabel();

	private JLabel jLabel5 = new JLabel();

	private JLabel jLabel6 = new JLabel();

	private JLabel jLabel7 = new JLabel();

	// 当前选择的天数按钮
	private JToggleButton cur = null;

	// 月份天数数组,用来取得当月有多少天
	// 1 2 3 4 5 6 7 8 9 10 11 12
	private int[] mm = { 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 };

	// by dongjie 增加选定时间按钮
	private JButton OkButton = new JButton();

	public String Fdate;

	private JTextField jtf = null;

	/**
	 * @return 返回 fdate。
	 */
	public String getFdate() {
		return Fdate;
	}

	/**
	 * @param fdate
	 *            要设置的 fdate。
	 */
	public void setFdate(String fdate) {
		Fdate = fdate;
	}

	// 空日期构造函数
	public JCalendar() {
		try {
			jbInit();
		} catch (Exception e) {
			e.printStackTrace();
		}

	}

	// 带文本框的构造函数
	public JCalendar(JTextField jtf) {
		this.setSize(260, 260);
		try {
			this.jtf = jtf;
			jbInit();
		} catch (Exception e) {
			e.printStackTrace();
		}

	}

	// 带日期设置的构造函数
	public JCalendar(int year, int month, int day) {
		cal.set(year, month, day);
		try {
			jbInit();
		} catch (Exception e) {
			e.printStackTrace();
		}
	}

	// 带日历输入的构造函数
	public JCalendar(GregorianCalendar calendar) {
		cal = calendar;
		try {
			jbInit();
		} catch (Exception e) {
			e.printStackTrace();
		}
	}

	// 带日期输入的构造函数
	public JCalendar(Date date) {
		cal.setTime(date);
		try {
			jbInit();
		} catch (Exception e) {
			e.printStackTrace();
		}
	}

	public JCalendar(JFrame form, boolean b) {
		// TODO 自动生成构造函数存根
		super(form, b);

		this.setSize(300, 300);
		try {
			jbInit();
		} catch (Exception e) {

		}

		// this.setVisible(true);
	}

	public JCalendar(JInternalFrame form, boolean b) {
		// TODO 自动生成构造函数存根
	}

	public JCalendar(Object object, String string, boolean b) {

		super((Frame) object, string, b);

		this.setSize(300, 300);
		try {
			jbInit();
		} catch (Exception e) {

		}
		// TODO 自动生成构造函数存根
	}

	// 初始化组件
	private void jbInit() throws Exception {
		// 初始化年、月、日
		iniCalender();
		this.setContentPane(jj);
		jj.setLayout(new BorderLayout());
		jj.add(jp, BorderLayout.CENTER);
		jj.add(OkButton, BorderLayout.SOUTH);
		this.setTitle("日历");

		jp.setLayout(new BorderLayout());
		jp.setBorder(BorderFactory.createRaisedBevelBorder());
		jp.setMaximumSize(new Dimension(200, 200));
		jp.setMinimumSize(new Dimension(200, 200));
		jp.setPreferredSize(new Dimension(200, 200));

		Main.setLayout(new BorderLayout());
		Main.setBackground(SystemColor.info);
		Main.setBorder(null);

		Out.setBackground(Color.lightGray);
		Out.setHorizontalAlignment(SwingConstants.CENTER);
		Out.setMaximumSize(new Dimension(100, 19));
		Out.setMinimumSize(new Dimension(100, 19));
		Out.setPreferredSize(new Dimension(100, 19));

		jLabel1.setForeground(Color.red);
		jLabel1.setHorizontalAlignment(SwingConstants.CENTER);
		jLabel1.setHorizontalTextPosition(SwingConstants.CENTER);
		jLabel1.setText("日");
		jLabel2.setForeground(Color.blue);
		jLabel2.setHorizontalAlignment(SwingConstants.CENTER);
		jLabel2.setHorizontalTextPosition(SwingConstants.CENTER);
		jLabel2.setText("六");
		jLabel3.setHorizontalAlignment(SwingConstants.CENTER);
		jLabel3.setHorizontalTextPosition(SwingConstants.CENTER);
		jLabel3.setText("五");
		jLabel4.setHorizontalAlignment(SwingConstants.CENTER);
		jLabel4.setHorizontalTextPosition(SwingConstants.CENTER);
		jLabel4.setText("四");
		jLabel5.setHorizontalAlignment(SwingConstants.CENTER);
		jLabel5.setHorizontalTextPosition(SwingConstants.CENTER);
		jLabel5.setText("三");
		jLabel6.setBorder(null);
		jLabel6.setHorizontalAlignment(SwingConstants.CENTER);
		jLabel6.setHorizontalTextPosition(SwingConstants.CENTER);
		jLabel6.setText("二");
		jLabel7.setBackground(Color.lightGray);
		jLabel7.setForeground(Color.black);
		jLabel7.setBorder(null);
		jLabel7.setHorizontalAlignment(SwingConstants.CENTER);
		jLabel7.setHorizontalTextPosition(SwingConstants.CENTER);
		jLabel7.setText("一");

		weekPanel.setBackground(UIManager
				.getColor("InternalFrame.activeTitleGradient"));
		weekPanel.setBorder(BorderFactory.createEtchedBorder());
		weekPanel.setLayout(new GridLayout(1, 7));
		weekPanel.add(jLabel1, null);
		weekPanel.add(jLabel7, null);
		weekPanel.add(jLabel6, null);
		weekPanel.add(jLabel5, null);
		weekPanel.add(jLabel4, null);
		weekPanel.add(jLabel3, null);
		weekPanel.add(jLabel2, null);

		MonthUp.setAlignmentX((float) 0.0);
		MonthUp.setActionMap(null);

		jPanelMonth.setBackground(SystemColor.info);
		jPanelMonth.setLayout(new BorderLayout());
		jPanelMonth.setBorder(BorderFactory.createEtchedBorder());

		Month.setBorder(null);
		Month.setHorizontalAlignment(SwingConstants.CENTER);
		Month.addMouseListener(new java.awt.event.MouseAdapter() {
			public void mouseClicked(MouseEvent e) {
				Month_mouseClicked(e);
			}
		});
		Month.addKeyListener(new java.awt.event.KeyAdapter() {
			public void keyPressed(KeyEvent e) {
				Month_keyPressed(e);
			}
		});

		MonthDown.setBorder(null);
		MonthDown.setText("\u25C4");
		MonthDown.addActionListener(new java.awt.event.ActionListener() {
			public void actionPerformed(ActionEvent e) {
				MonthDown_actionPerformed(e);
			}
		});
		MonthUp.setBorder(null);
		MonthUp.setText("\u25BA");
		MonthUp.addActionListener(new java.awt.event.ActionListener() {
			public void actionPerformed(ActionEvent e) {
				MonthUp_actionPerformed(e);
			}
		});

		jPanelButton.setLayout(null);
		jPanelButton.setBorder(null);
		jPanelButton
				.addComponentListener(new java.awt.event.ComponentAdapter() {
					public void componentResized(
							java.awt.event.ComponentEvent evt) {
						jPanelButtonComponentResized(evt);
					}
				});

		// by dongjie
		OkButton.setText("确定");
		OkButton.addActionListener(new java.awt.event.ActionListener() {
			public void actionPerformed(java.awt.event.ActionEvent evt) {
				OkButtonActionPerformed(evt);
			}
		});

		Year.setBorder(BorderFactory.createEtchedBorder());
		Year.setMaximumSize(new Dimension(80, 25));
		Year.setMinimumSize(new Dimension(80, 25));
		Year.setPreferredSize(new Dimension(80, 25));
		Year.setHorizontalAlignment(SwingConstants.CENTER);
		Year.addMouseListener(new java.awt.event.MouseAdapter() {
			public void mouseClicked(MouseEvent e) {
				Year_mouseClicked(e);
			}
		});
		Year.addKeyListener(new java.awt.event.KeyAdapter() {
			public void keyPressed(KeyEvent e) {
				Year_keyPressed(e);
			}
		});

⌨️ 快捷键说明

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