Mega Code Archive

 
Categories / Java / Swing JFC
 

Using an InputVerifier with a formatted textfield

/* Java Swing, 2nd Edition By Marc Loy, Robert Eckstein, Dave Wood, James Elliott, Brian Cole ISBN: 0-596-00408-7 Publisher: O'Reilly  */ // FtfInputVerifier.java //An example of using an InputVerifier with a formatted textfield. // import javax.swing.BorderFactory; import javax.swing.InputVerifier; import javax.swing.JComponent; import javax.swing.JFormattedTextField; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JPanel; import javax.swing.JTextField; public class FtfInputVerifier {   public static void main(String argv[]) {     java.net.URL u = null;     try {       u = new java.net.URL("http://www.ora.com/");     } catch (java.net.MalformedURLException ignored) {     }     // create two identical JFormattedTextFields     JFormattedTextField ftf1 = new JFormattedTextField(u);     JFormattedTextField ftf2 = new JFormattedTextField(u);     // and set an InputVerifier on one of them     ftf2.setInputVerifier(new InputVerifier() {       public boolean verify(JComponent input) {         if (!(input instanceof JFormattedTextField))           return true; // give up focus         return ((JFormattedTextField) input).isEditValid();       }     });     JPanel p = new JPanel(new java.awt.GridLayout(0, 2, 3, 8));     p.add(new JLabel("plain JFormattedTextField:", JLabel.RIGHT));     p.add(ftf1);     p.add(new JLabel("FTF with InputVerifier:", JLabel.RIGHT));     p.add(ftf2);     p.add(new JLabel("plain JTextField:", JLabel.RIGHT));     p.add(new JTextField(u.toString()));     p.setBorder(BorderFactory.createEmptyBorder(8, 8, 8, 8));     JFrame f = new JFrame("FtfInputVerifier");     f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);     f.getContentPane().add(         new JLabel("Try to delete the colon in each field.",             JLabel.CENTER), java.awt.BorderLayout.NORTH);     f.getContentPane().add(p, java.awt.BorderLayout.CENTER);     f.pack();     f.setVisible(true);   } }