📄 dateinputfield.java
字号:
package net.sujee.util;import java.awt.GridLayout;import javax.swing.JPanel;import javax.swing.JLabel;import javax.swing.JComboBox;import javax.swing.JFrame;import java.awt.Color;import java.awt.FlowLayout;import java.awt.event.ActionListener;import java.awt.event.ActionEvent;import java.util.Date;import java.util.Calendar;import java.util.GregorianCalendar;public class DateInputField extends JPanel implements ActionListener{ IntegerInputField mYearField, mDayField; JComboBox mMonthCombo; /* String mMonthArray [] = { "January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December" }; */ String mMonthArray [] = { "Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec" }; int mDayArray [] = { 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 }; public DateInputField () { this (new Date ()); } public DateInputField (Date d) { super (new FlowLayout (FlowLayout.CENTER,10,2)); Calendar cal = Calendar.getInstance(); cal.setTime(d); mYearField = new IntegerInputField (0, Integer.MAX_VALUE); mYearField.setText("" + cal.get (cal.YEAR)); mDayField = new IntegerInputField (0,31); mDayField.setText ( "" + cal.get (cal.DATE)); setLayout(new GridLayout (1,6)); mMonthCombo = new JComboBox (mMonthArray); mMonthCombo.addActionListener(this); mMonthCombo.setSelectedIndex(cal.get (Calendar.MONTH)); add (mDayField); add (mMonthCombo); add (mYearField); } public Date getDate () { int year = 0, month = 0, day = 1; try { year = Integer.parseInt(mYearField.getText()); month = mMonthCombo.getSelectedIndex(); // Java months are from 0 - 11 // in month field, we ask for 1-12 day = Integer.parseInt(mDayField.getText()); } catch (NumberFormatException e) { } GregorianCalendar cal = new GregorianCalendar (year,month,day); return cal.getTime(); } public boolean setDate (int date, int month, int year) { Calendar cal = Calendar.getInstance(); try { cal.set(Calendar.DATE, date); cal.set(Calendar.MONTH, month); cal.set(Calendar.YEAR, year); mDayField.setValue (date); mMonthCombo.setSelectedIndex (month); mYearField.setValue (year); return true; } catch (Exception e) { return false; } } public void setEnabled(boolean b) { super.setEnabled(b); mDayField.setEnabled(b); mMonthCombo.setEnabled(b); mYearField.setEnabled(b); } public void actionPerformed(ActionEvent e) { Object src = e.getSource(); if (src == mMonthCombo) { int date = mDayField.getValue(); if ( (date <= 0) || (date > mDayArray[mMonthCombo.getSelectedIndex()]) ) mDayField.flagError(); else mDayField.clearError(); } } public static void main (String [] args) { JFrame f = new JFrame ("DateInputField2 Test"); DateInputField d = new DateInputField (); f.getContentPane().add(d); f.setSize (200,50); f.setDefaultCloseOperation(3); f.show(); //d.setEnabled(false); System.out.println("Date is : " + d.getDate().toString()); }}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -