下面列出了怎么用javax.swing.text.DateFormatter的API类实例代码及写法,或者点击链接到github查看源代码。
/**
* Creates new form FileSelection
*/
public SimulationParameters() {
initComponents();
this.setResizable(false);
this.setTitle("File Selection");
fileReader = new FileRead();
initialiseDateComboBox(fileReader);
JSpinner.DateEditor timeEditor = new JSpinner.DateEditor(SpinnerTime, "HH:mm:ss");
DateFormatter formatter = (DateFormatter) timeEditor.getTextField().getFormatter();
formatter.setAllowsInvalid(false); // Make sure no invalid input is allowed
SpinnerTime.setEditor(timeEditor);
String StartTime = "08:30:00";
Date time;
try {
time = new SimpleDateFormat("HH:mm:ss").parse(StartTime);
SpinnerTime.setValue(time); // will only show the current time
} catch (ParseException ex) {
Logger.getLogger(SimulationParameters.class.getName()).log(Level.SEVERE, null, ex);
}
}
public void setDateFormat( final DateFormat timeFormat ) {
if ( timeFormat == null ) {
throw new NullPointerException();
}
dateField.setFormatterFactory( new JFormattedTextField.AbstractFormatterFactory() {
public JFormattedTextField.AbstractFormatter getFormatter( final JFormattedTextField tf ) {
return new DateFormatter( timeFormat ) {
// allow to clear the field
public Object stringToValue( final String text ) throws ParseException {
return "".equals( text ) ? null : super.stringToValue( text );
}
};
}
} );
if ( timeFormat instanceof SimpleDateFormat ) {
final SimpleDateFormat dateFormat = (SimpleDateFormat) timeFormat;
setToolTipText( dateFormat.toLocalizedPattern() );
} else {
setToolTipText( null );
}
if ( dateChooserPanel != null ) {
setDate( getCellEditorValue() );
}
}
private MainPanel() {
super(new GridLayout(2, 1));
Calendar c = Calendar.getInstance();
// c.clear(Calendar.HOUR_OF_DAY);
// c.clear(Calendar.AM_PM);
// c.clear(Calendar.HOUR);
c.set(Calendar.HOUR_OF_DAY, 0);
c.clear(Calendar.MINUTE);
c.clear(Calendar.SECOND);
c.clear(Calendar.MILLISECOND);
Date d = c.getTime();
SimpleDateFormat format = new SimpleDateFormat("mm:ss", Locale.getDefault());
DefaultFormatterFactory factory = new DefaultFormatterFactory(new DateFormatter(format));
JSpinner spinner1 = new JSpinner(new SpinnerDateModel(d, null, null, Calendar.SECOND));
((JSpinner.DefaultEditor) spinner1.getEditor()).getTextField().setFormatterFactory(factory);
JSpinner spinner2 = new JSpinner(new SpinnerDateModel(d, null, null, Calendar.SECOND) {
@Override public void setCalendarField(int calendarField) {
// https://docs.oracle.com/javase/8/docs/api/javax/swing/SpinnerDateModel.html#setCalendarField-int-
// If you only want one field to spin you can subclass and ignore the setCalendarField calls.
}
});
((JSpinner.DefaultEditor) spinner2.getEditor()).getTextField().setFormatterFactory(factory);
add(makeTitledPanel("Default SpinnerDateModel", spinner1));
add(makeTitledPanel("Override SpinnerDateModel#setCalendarField(...)", spinner2));
setBorder(BorderFactory.createEmptyBorder(10, 5, 10, 5));
setPreferredSize(new Dimension(320, 240));
}
private void updateTextFieldFormat() {
if (timeSpinner == null) {
return;
}
JFormattedTextField tf = ((JSpinner.DefaultEditor) timeSpinner.getEditor()).getTextField();
DefaultFormatterFactory factory = (DefaultFormatterFactory) tf.getFormatterFactory();
DateFormatter formatter = (DateFormatter) factory.getDefaultFormatter();
// Change the date format to only show the hours
formatter.setFormat(timeFormat);
}
private void updateTextFieldFormat() {
if (timeSpinner == null) return;
JFormattedTextField tf = ((JSpinner.DefaultEditor) timeSpinner.getEditor()).getTextField();
DefaultFormatterFactory factory = (DefaultFormatterFactory) tf.getFormatterFactory();
DateFormatter formatter = (DateFormatter) factory.getDefaultFormatter();
// Change the date format to only show the hours
formatter.setFormat(timeFormat);
}
TestFormattedTextField create(DateFormat format) {
DateFormatter fmt = new DateFormatter(format);
return new TestFormattedTextField(fmt);
}
TestFormattedTextField create(DateFormat format) {
DateFormatter fmt = new DateFormatter(format);
return new TestFormattedTextField(fmt);
}
TestFormattedTextField create(DateFormat format) {
DateFormatter fmt = new DateFormatter(format);
return new TestFormattedTextField(fmt);
}
TestFormattedTextField create(DateFormat format) {
DateFormatter fmt = new DateFormatter(format);
return new TestFormattedTextField(fmt);
}
TestFormattedTextField create(DateFormat format) {
DateFormatter fmt = new DateFormatter(format);
return new TestFormattedTextField(fmt);
}
TestFormattedTextField create(DateFormat format) {
DateFormatter fmt = new DateFormatter(format);
return new TestFormattedTextField(fmt);
}
TestFormattedTextField create(DateFormat format) {
DateFormatter fmt = new DateFormatter(format);
return new TestFormattedTextField(fmt);
}
TestFormattedTextField create(DateFormat format) {
DateFormatter fmt = new DateFormatter(format);
return new TestFormattedTextField(fmt);
}
TestFormattedTextField create(DateFormat format) {
DateFormatter fmt = new DateFormatter(format);
return new TestFormattedTextField(fmt);
}
TestFormattedTextField create(DateFormat format) {
DateFormatter fmt = new DateFormatter(format);
return new TestFormattedTextField(fmt);
}
TestFormattedTextField create(DateFormat format) {
DateFormatter fmt = new DateFormatter(format);
return new TestFormattedTextField(fmt);
}
TestFormattedTextField create(DateFormat format) {
DateFormatter fmt = new DateFormatter(format);
return new TestFormattedTextField(fmt);
}
TestFormattedTextField create(DateFormat format) {
DateFormatter fmt = new DateFormatter(format);
return new TestFormattedTextField(fmt);
}
private DefaultFormatterFactory createFormatterFactory() {
return new DefaultFormatterFactory(new DateFormatter(peer
.getDateFormat()));
}