java实现自定义日期选择器的方法实例

  

  

本文主要介绍的是利用java swing写的一个日期选择器。,是一个为Java设计的GUI工具包,摇摆是Java基础类的一部分,Swing包括了图形用户界面(GUI)器件如:文本框,按钮,分隔窗格和表、下面话不多说了,来一起看看详细的介绍吧。

  

  

癹ava实现自定义日期选择器的方法实例"

  

        包com.jianggujin;      进口java.awt.Color;   进口java.awt.GridLayout;   进口java.awt.event.ActionEvent;   进口java.awt.event.ActionListener;   进口java.awt.event.ItemEvent;   进口java.awt.event.ItemListener;   进口java.awt.event.MouseAdapter;   进口java.awt.event.MouseEvent;   进口java.text.SimpleDateFormat;   进口java.util.Calendar;   进口java.util.Date;      进口javax.swing.ImageIcon;   进口javax.swing.JButton;   进口javax.swing.JComboBox;   进口javax.swing.JDialog;   进口javax.swing.JLabel;   进口javax.swing.JPanel;   进口javax.swing.UIManager;/* *   *日期选择器控件   *   * @author jianggujin   *   */@SuppressWarnings(“串行”)   公众最终类JDateChooser JDialog延伸   {//定义相关参数/* *   *年份   */私人int年=0;/* *   *月份   */私人int月=0;/* *   *天   */私人int日期=0;/* *   *日期选择背景色   */私人颜色selectColor=Color.green;/* *   *日期背景色   */私人颜色dateColor=Color.white;/* *   *日期鼠标进入背景色   */私人颜色dateHoverColor=Color.lightGray;/* *   *日期标题背景色   */私人颜色dateTitleColor=Color.gray;/* *   *日期标题字体颜色   */私人颜色dateTitleFontColor=Color.black;/* *   *日期字体颜色   */私人颜色dateFontColor=Color.black;/* *   *日期是否有效标志   */私人布尔标志=false;/* *   *最小年份   */私人int minYear=1900;/* *   *最大年份   */私人int maxYear=2050;//定义所需组件/* *   *上一年   */私人JButton jbYearPre;/* *   *下一年   */私人JButton jbYearNext;/* *   *上一月   */私人JButton jbMonthPre;/* *   *下一月   */私人JButton jbMonthNext;/* *   *年份下拉选择框   */私人JComboBoxjcbYear;/* *   *月份下拉选择框   */私人JComboBoxjcbMonth;/* *   *天标签   */私人JLabel [] [] jlDays;/* *   *选择   */私人JButton jbChoose;/* *   *今日   */私人JButton jbToday;/* *   *取消   */私人JButton jbCancel;/* *   *程序主方法   *   * @param arg游戏   *命令参数   */公共静态void main (String [] args)   {   试一试   {   UIManager.setLookAndFeel (UIManager.getSystemLookAndFeelClassName ());   }   捕获(异常e)   {   }   JDateChooser gg=new JDateChooser ();   gg.showDateChooser ();   System.out.println (gg.getDateFormat (“yyyy-MM-dd”));   }/* *   *显示对话框   */公共空间showDateChooser ()   {   setVisible(真正的);   }/* *   *关闭对话框   */公共空间closeDateChooser ()   {   this.dispose ();   }/* *   *设置时间   *   * @param年   *年1900 - 2050份   * @param月   *月份1 - 12   * @param日期   *天   */公共空间设置当前日期(int, int, int日期)   {   如果(年祝辞=minYear,,年& lt;=maxYear)   {   这一点。年=一年;   }   其他的   {   返回;   }   如果(月祝辞=1,,月& lt;=12)   {   这一点。月=月;   }   其他的   {   返回;   }   如果日期比;0,,日期& lt;=getDaysInMonth(年、月)   {   这一点。日期=日期;   }   其他的   {   返回;   }   }/* *   *获得用户操作是否有效标志   *   * @return事件是否有效   */公共布尔getFlag ()   {   返回国旗;   }/* *   *构造方法   */公共JDateChooser ()   {   initComponent ();   initComponentData ();   addComponent ();   addListener ();   setDialogAttribute ();   }/* *   *实例化组件   */私人空间initComponent ()   {   jbYearPre=new JButton ();   jbYearNext=new JButton ();   jbMonthPre=new JButton ();   jbMonthNext=new JButton ();   jcbYear=new JComboBox ();   jcbMonth=new JComboBox ();      jlDays=new JLabel [7] [7];      jbChoose=new JButton ();   jbToday=new JButton ();   jbCancel=new JButton ();   }/* *   *初始化组件数据   */私人空间initComponentData ()   {   jbYearPre.setText (“←”);   jbYearNext.setText (“→”);   jbMonthPre.setText (“↑”);   jbMonthNext.setText (“↓”);   日历日历=Calendar.getInstance ();   如果(!=0,,月!=0,,日期!=0)   {   日历。集(年、月- 1、日期);   }   其他的   {   年=calendar.get (Calendar.YEAR);   月=calendar.get (Calendar.MONTH) + 1;   日期=calendar.get (Calendar.DAY_OF_MONTH);   }   initYear ();   jcbYear。setSelectedItem(年+ "年");   for (int i=1;我& lt;=12;我+ +)   {   jcbMonth。addItem (i +“月”);   }   jcbMonth。setSelectedItem(月+“月”);   for (int i=0;我& lt;7;我+ +)   {   JLabel temp=new JLabel ();   temp.setHorizontalAlignment (JLabel.CENTER);   temp.setVerticalAlignment (JLabel.CENTER);   temp.setOpaque(真正的);   temp.setBackground (dateTitleColor);   temp.setForeground (dateTitleFontColor);   jlDays[0][我]=temp;   }   for (int i=1;我& lt;7;我+ +)   {   for (int j=0;j & lt;7;j + +)   {   JLabel temp=new JLabel ();   temp.setHorizontalAlignment (JLabel.CENTER);   temp.setVerticalAlignment (JLabel.CENTER);   temp.setOpaque(真正的);   temp.setForeground (dateFontColor);   jlDays[我][j]=temp;   }   }      String[]天={“日”,“一”、“二”、“三”、“四”、“五”、“六”};   for (int i=0;我& lt;7;我+ +)   {   jlDays[0][我]. settext(天[我]);   }      jbChoose.setText(“选择”);   jbToday.setText(“今日”);   jbCancel.setText(“取消”);      changeDate ();   }/* *   *初始化显示年份范围   */私人空间initYear ()   {   jcbYear.removeAllItems ();   for (int i=minYear;我& lt;=maxYear;我+ +)   {   jcbYear。addItem (i + "年");   }   }/* *   *添加组件   */私人空间addComponent ()   {//添加背部组件   JPanel北=new JPanel ();   north.add (jbYearPre);   north.add (jbMonthPre);   north.add (jcbYear);   north.add (jcbMonth);   north.add (jbMonthNext);   north.add (jbYearNext);   这一点。添加(北,“北”);//添加中间组件   JPanel中心=new JPanel(新GridLayout (7));   for (int i=0;我& lt;7;我+ +)   {   for (int j=0;j & lt;7;j + +)   {   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null

java实现自定义日期选择器的方法实例