Main.java Source code

Java tutorial

Introduction

Here is the source code for Main.java

Source

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

import javax.swing.JComponent;
import javax.swing.JFrame;
import javax.swing.JTextField;
import javax.swing.SwingUtilities;

public class Main {
    public static void main(String[] a) {
        final JTextField textField = new JTextField(5);

        textField.addFocusListener(new FocusListener() {
            public void focusGained(FocusEvent e) {
            }

            public void focusLost(FocusEvent e) {
                if (!e.isTemporary()) {
                    String content = textField.getText();
                    if (!content.equals("a")) {
                        System.out.println("illegal value! " + content);
                        SwingUtilities.invokeLater(new FocusGrabber(textField));
                    }
                }
            }
        });
        JFrame frame = new JFrame();
        frame.add(textField, BorderLayout.CENTER);
        frame.setSize(300, 300);
        frame.setVisible(true);

    }
}

class FocusGrabber implements Runnable {
    private JComponent component;

    public FocusGrabber(JComponent component) {
        this.component = component;
    }

    public void run() {
        component.grabFocus();
    }
}