📄 jcalendar.java
字号:
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 + -