Java Tutorial/Swing/DefaultFormatterFactory

Материал из Java эксперт
Перейти к: навигация, поиск

DefaultFormatterFactory Class

   <source lang="java">

public DefaultFormatterFactory() DefaultFormatterFactory factory = new DefaultFormatterFactory() public DefaultFormatterFactory(JFormattedTextField.AbstractFormatter defaultFormat) DateFormat defaultFormat = new SimpleDateFormat("yyyy--MMMM--dd"); DateFormatter defaultFormatter = new DateFormatter(displayFormat); DefaultFormatterFactory factory = new DefaultFormatterFactory(defaultFormatter); public DefaultFormatterFactory(JFormattedTextField.AbstractFormatter defaultFormat, JFormattedTextField.AbstractFormatter displayFormat) DateFormat displayFormat = new SimpleDateFormat("yyyy--MMMM--dd"); DateFormatter displayFormatter = new DateFormatter(displayFormat); DefaultFormatterFactory factory = new DefaultFormatterFactory(displayFormatter, displayFormatter); public DefaultFormatterFactory(JFormattedTextField.AbstractFormatter defaultFormat, JFormattedTextField.AbstractFormatter displayFormat, JFormattedTextField.AbstractFormatter editFormat)DateFormat displayFormat = new SimpleDateFormat("yyyy--MMMM--dd"); DateFormatter displayFormatter = new DateFormatter(displayFormat); DateFormat editFormat = new SimpleDateFormat("MM/dd/yy"); DateFormatter editFormatter = new DateFormatter(editFormat); DefaultFormatterFactory factory = new DefaultFormatterFactory(displayFormatter, displayFormatter, editFormatter); public DefaultFormatterFactory(JFormattedTextField.AbstractFormatter defaultFormat,

 JFormattedTextField.AbstractFormatter displayFormat,
 JFormattedTextField.AbstractFormatter editFormat,
 JFormattedTextField.AbstractFormatter nullFormat)

DateFormat displayFormat = new SimpleDateFormat("yyyy--MMMM--dd"); DateFormatter displayFormatter = new DateFormatter(displayFormat); DateFormat editFormat = new SimpleDateFormat("MM/dd/yy"); DateFormatter editFormatter = new DateFormatter(editFormat); DateFormat nullFormat = new SimpleDateFormat(""null""); DateFormatter nullFormatter = new DateFormatter(nullFormat); DefaultFormatterFactory factory = new DefaultFormatterFactory(displayFormatter, displayFormatter, editFormatter, nullFormatter);</source>





Using DefaultFormatterFactory to control JFormattedTextField

   <source lang="java">

import java.text.DateFormat; import java.text.SimpleDateFormat; import javax.swing.JFormattedTextField; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JPanel; import javax.swing.JTextField; import javax.swing.text.DateFormatter; import javax.swing.text.DefaultFormatterFactory; public class DefaultFormatterFactoryDemo {

 public static void main(String args[]) {
   JFrame frame = new JFrame("Mask Input");
   frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
   JLabel label = new JLabel("Date");
   DateFormat displayFormat = new SimpleDateFormat("yyyy--MMMM--dd");
   DateFormatter displayFormatter = new DateFormatter(displayFormat);
   DateFormat editFormat = new SimpleDateFormat("MM/dd/yy");
   DateFormatter editFormatter = new DateFormatter(editFormat);
   DateFormat nullFormat = new SimpleDateFormat(""null"");
   DateFormatter nullFormatter = new DateFormatter(nullFormat);
   DefaultFormatterFactory factory = new DefaultFormatterFactory(displayFormatter,
       displayFormatter, editFormatter, nullFormatter);
   JFormattedTextField input = new JFormattedTextField(factory);
   input.setColumns(30);
   JPanel panel = new JPanel();
   panel.add(label);
   panel.add(input);
   frame.add(panel,"North");
   frame.add(new JTextField(),"Center");
   frame.pack();
   frame.setVisible(true);
 }

}</source>