Main.java Source code

Java tutorial

Introduction

Here is the source code for Main.java

Source

import java.awt.FlowLayout;
import java.awt.event.FocusEvent;
import java.awt.event.FocusListener;

import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JTextField;
import javax.swing.text.AbstractDocument;
import javax.swing.text.AttributeSet;
import javax.swing.text.BadLocationException;
import javax.swing.text.DocumentFilter;

public class Main {
    public static void main(String... args) {
        JFrame frame = new JFrame();
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

        JPanel contentPane = new JPanel();
        contentPane.setLayout(new FlowLayout(FlowLayout.LEFT, 5, 5));
        JTextField tfield1 = new JTextField(10);
        JTextField tfield2 = new JTextField(10);

        FocusListener tfieldListener = new FocusListener() {
            @Override
            public void focusGained(FocusEvent fe) {
            }

            @Override
            public void focusLost(FocusEvent fe) {
                String num1 = tfield1.getText().trim();
                String num2 = tfield2.getText().trim();
                if (num1 == null || num1.equals(""))
                    num1 = "0";
                if (num2 == null || num2.equals(""))
                    num2 = "0";
                System.out.println(Integer.toString(Integer.parseInt(num1) + Integer.parseInt(num2)));
            }
        };

        tfield1.addFocusListener(tfieldListener);
        tfield2.addFocusListener(tfieldListener);

        ((AbstractDocument) tfield1.getDocument()).setDocumentFilter(new MyDocumentFilter());
        ((AbstractDocument) tfield2.getDocument()).setDocumentFilter(new MyDocumentFilter());

        contentPane.add(tfield1);
        contentPane.add(tfield2);

        frame.setContentPane(contentPane);
        frame.pack();
        frame.setLocationByPlatform(true);
        frame.setVisible(true);
    }
}

class MyDocumentFilter extends DocumentFilter {
    @Override
    public void insertString(FilterBypass fb, int offset, String text, AttributeSet aset) {
        try {
            super.insertString(fb, offset, text.replaceAll("\\D++", ""), aset);
        } catch (BadLocationException ble) {
            ble.printStackTrace();
        }
    }

    @Override
    public void replace(FilterBypass fb, int offset, int len, String text, AttributeSet aset) {
        try {
            super.replace(fb, offset, len, text.replaceAll("\\D++", ""), aset);
        } catch (BadLocationException ble) {
            ble.printStackTrace();
        }
    }
}