Validating a JTextField When Permanently Losing the Focus : Focus Event « Event « Java






Validating a JTextField When Permanently Losing the Focus

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

import javax.swing.JFrame;
import javax.swing.JTextField;
import javax.swing.text.JTextComponent;

public class Main {
  public static void main(String[] argv) throws Exception {
    JTextField component = new JTextField(10);
    JTextField component1 = new JTextField(10);
    component.addFocusListener(new MyFocusListener());
    component1.addFocusListener(new MyFocusListener());
    JFrame f = new JFrame();
    f.setLayout(new FlowLayout());
    f.add(component1);
    f.add(component);
    f.pack();
    f.setVisible(true);

  }
}
class MyFocusListener extends FocusAdapter {
  boolean showingDialog = false;

  public void focusGained(FocusEvent evt) {
    final JTextComponent c = (JTextComponent) evt.getSource();
    String s = c.getText();

    for (int i = 0; i < s.length(); i++) {
      if (!Character.isDigit(s.charAt(i))) {
        c.setSelectionStart(i);
        c.setSelectionEnd(i);
        break;
      }
    }
  }

  public void focusLost(FocusEvent evt) {
    final JTextComponent c = (JTextComponent) evt.getSource();
    String s = c.getText();

    if (evt.isTemporary()) {
      return;
    }
    for (int i = 0; i < s.length(); i++) {
      if (!Character.isDigit(s.charAt(i))) {
        System.out.println("must only contain digits");
        c.requestFocus();
        break;
      }
    }
  }
}

   
    
  








Related examples in the same category

1.Setting Focus Traversal Keys in a Component
2.Change the forward focus traversal keys for a component
3.JComponent.setFocusTraversalKeys(int arg0, Set arg1)
4.KeyboardFocusManager.FORWARD_TRAVERSAL_KEYS
5.Setting Focus Traversal Keys for the Entire Application
6.Changes the focus traversal keys for the entire application.
7.Change the backward focus traversal keys for the application
8.KeyboardFocusManager.BACKWARD_TRAVERSAL_KEYS
9.KeyboardFocusManager.getCurrentKeyboardFocusManager().getDefaultFocusTraversalKeys(KeyboardFocusManager.BACKWARD_TRAVERSAL_KEYS)
10.Remove all forward focus traversal keys for the application
11.Remove all backward focus traversal keys for the application
12.Modify a component: press space bar or F2 to move focus to next focusable component.
13.Press shift space or shift F2 to move the focus to the previous focusable component.
14.Setting the Initial Focused Component in a Window
15.Finding the Next Focusable Component
16.Find the previous focusable component
17.Determining If a Focus Lost Is Temporary or Permanent
18.Determining the Opposite Component of a Focus Event
19.Removing the Focus from the Application
20.Use Focus Events in Swing
21.Null is returned if none of the components in this application has the focus
22.Null is returned if none of the windows in this application has the focus
23.Listening to All Focus Changes Between Components and windows
24.Preventing a Component from Gaining the Focus