focuslistenerdemo.java

来自「java 完全探索的随书源码」· Java 代码 · 共 60 行

JAVA
60
字号
// FocusListenerDemo.java

import java.awt.*;
import java.awt.event.*;

class FocusListenerDemo extends Frame implements FocusListener
{
   TextField numField;

   FocusListenerDemo (String title)
   {
      super (title);

      Panel p = new Panel ();
      p.add (new Label ("Please enter a number:"));
      numField = new TextField (20);
      numField.addFocusListener (this);
      p.add (numField);
      add (p, "North");

      p = new Panel ();
      p.add (new Label ("Please enter a name:"));
      TextField nameField = new TextField (20);
      nameField.addFocusListener (this);
      p.add (nameField);
      add (p, "South");

      setSize (350, 100);

      setVisible (true);
   }

   public void focusGained (FocusEvent e)
   {
      Component c = (Component) e.getSource ();
      System.out.println ("GAIN: " + c.getName ());
   }

   public void focusLost (FocusEvent e)
   {
      Component c = (Component) e.getSource ();
      System.out.println ("LOST: " + c.getName ());

      if (e.getSource () == numField)
          try
          {
             int i = Integer.parseInt (numField.getText ());
          }
          catch (NumberFormatException e2)
          {
             numField.requestFocus ();
          }
   }

   public static void main (String [] args)
   {
      new FocusListenerDemo ("Focus Listener Demo");
   }
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?