MyFormatter.java Source code

Java tutorial

Introduction

Here is the source code for MyFormatter.java

Source

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);
    }
}