Mega Code Archive

 
Categories / Java / Swing JFC
 

Make custom Input Text Formatter in Java

import java.awt.BorderLayout; import java.text.ParseException; import javax.swing.JFormattedTextField; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JPanel; import javax.swing.text.DefaultFormatter; class MyFormatter extends DefaultFormatter {   public MyFormatter() {     super();   }   public String valueToString(Object arg0) throws ParseException {     return super.valueToString(arg0);   }   public Object stringToValue(String arg0) throws ParseException {     try {       int value = Integer.parseInt(arg0);       if (value >= 1 && value <= 10) {         return "" + value;       } else {         return "Invalid";       }     } catch (Exception e) {       return "Invalid";     }   } } public class Main extends JFrame {   public Main() {     JPanel panel = new JPanel();     JLabel label = new JLabel("Number :");     JFormattedTextField tf = new JFormattedTextField(new MyFormatter());     tf.setColumns(10);     panel.add(label);     panel.add(tf);     getContentPane().add(panel, BorderLayout.SOUTH);     pack();   }   public static void main(String[] args) {     Main mfe = new Main();     mfe.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);     mfe.setVisible(true);   } }