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);
}
}
Related examples in the same category