Java by API/javax.swing.text/MaskFormatter
Содержание
MaskFormatter; setPlaceholderCharacter(char placeholder)
<source lang="java">
import java.awt.FlowLayout; import java.text.ParseException; import javax.swing.BoxLayout; import javax.swing.JFormattedTextField; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JPanel; import javax.swing.text.MaskFormatter; public class MainClass {
public static void main(String args[]) throws Exception { JFrame frame = new JFrame("Mask Input"); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); JLabel label; JFormattedTextField input; JPanel panel; MaskFormatter formatter; try { label = new JLabel("US Phone"); formatter = new MaskFormatter(""(###")" ###"-####"); formatter.setPlaceholderCharacter("*"); input = new JFormattedTextField(formatter); input.setColumns(20); panel = new JPanel(new FlowLayout(FlowLayout.RIGHT)); panel.add(label); panel.add(input); frame.add(panel); } catch (ParseException e) { System.err.println("Unable to add Phone"); } frame.pack(); frame.setVisible(true); }
}
</source>
new MaskFormatter("###-##-####")
<source lang="java">
import java.awt.BorderLayout; import java.text.ParseException; import javax.swing.Box; import javax.swing.JFormattedTextField; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.text.MaskFormatter; public class MainClass {
public static void main(String args[]) { JFrame f = new JFrame("JFormattedTextField Sample"); f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); Box rowOne = Box.createHorizontalBox(); rowOne.add(new JLabel("SSN:")); try { MaskFormatter mf1 = new MaskFormatter("###-##-####"); rowOne.add(new JFormattedTextField(mf1)); } catch (ParseException e) { } f.add(rowOne, BorderLayout.NORTH); f.setSize(300, 100); f.setVisible(true); }
}
</source>
new MaskFormatter("(###) ###-####") (2)
<source lang="java">
import java.awt.BorderLayout; import java.text.ParseException; import javax.swing.Box; import javax.swing.JFormattedTextField; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.text.MaskFormatter; public class MainClass {
public static void main(String args[]) { JFrame f = new JFrame("JFormattedTextField Sample"); f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); Box rowOne = Box.createHorizontalBox(); rowOne.add(new JLabel("SSN:")); try { MaskFormatter mf1 = new MaskFormatter("(###) ###-####"); rowOne.add(new JFormattedTextField(mf1)); } catch (ParseException e) { } f.add(rowOne, BorderLayout.NORTH); f.setSize(300, 100); f.setVisible(true); }
}
</source>
new MaskFormatter("LLLL")
<source lang="java">
import java.awt.BorderLayout; import java.text.ParseException; import javax.swing.JFormattedTextField; import javax.swing.JFrame; import javax.swing.JPanel; import javax.swing.JTextField; import javax.swing.border.TitledBorder; import javax.swing.text.DefaultFormatterFactory; import javax.swing.text.MaskFormatter; public class MainClass {
public static JPanel demo1() { JPanel pan = new JPanel(new BorderLayout()); pan.setBorder(new TitledBorder("Demo 1: format toggles with focus")); MaskFormatter withFocus = null, withoutFocus = null; try { withFocus = new MaskFormatter("LLLL"); withoutFocus = new MaskFormatter("UUUU"); } catch (ParseException pe) { } DefaultFormatterFactory factory = new DefaultFormatterFactory(withoutFocus, null, withFocus); JFormattedTextField field = new JFormattedTextField(factory); field.setValue("Four"); pan.add(field, BorderLayout.CENTER); return pan; } public static void main(String argv[]) { JFrame f = new JFrame("FactoryDemo"); f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); f.getContentPane().add(demo1(), BorderLayout.NORTH); f.getContentPane().add(new JTextField(), BorderLayout.SOUTH); f.setSize(240, 160); f.setVisible(true); }
}
</source>
new MaskFormatter("UUUU")
<source lang="java">
import java.awt.BorderLayout; import java.text.ParseException; import javax.swing.JFormattedTextField; import javax.swing.JFrame; import javax.swing.JPanel; import javax.swing.JTextField; import javax.swing.border.TitledBorder; import javax.swing.text.DefaultFormatterFactory; import javax.swing.text.MaskFormatter; public class MainClass {
public static JPanel demo1() { JPanel pan = new JPanel(new BorderLayout()); pan.setBorder(new TitledBorder("Demo 1: format toggles with focus")); MaskFormatter withFocus = null, withoutFocus = null; try { withFocus = new MaskFormatter("LLLL"); withoutFocus = new MaskFormatter("UUUU"); } catch (ParseException pe) { } DefaultFormatterFactory factory = new DefaultFormatterFactory(withoutFocus, null, withFocus); JFormattedTextField field = new JFormattedTextField(factory); field.setValue("Four"); pan.add(field, BorderLayout.CENTER); return pan; } public static void main(String argv[]) { JFrame f = new JFrame("FactoryDemo"); f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); f.getContentPane().add(demo1(), BorderLayout.NORTH); f.getContentPane().add(new JTextField(), BorderLayout.SOUTH); f.setSize(240, 160); f.setVisible(true); }
}
</source>