JDK-4182224 : Character put in TextField before keyTyped event processed
  • Type: Bug
  • Component: client-libs
  • Sub-Component: java.awt
  • Affected Version: 1.1.6
  • Priority: P4
  • Status: Closed
  • Resolution: Duplicate
  • OS: solaris_2.6
  • CPU: sparc
  • Submitted: 1998-10-16
  • Updated: 2003-12-02
  • Resolved: 2003-12-02
Related Reports
Duplicate :  
Description

Name: eh37734			Date: 10/16/98


This code works properly on Windows 95/NT.

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

public class NumericFieldTest extends CloseableFrame
   implements  KeyListener
{  public NumericFieldTest()
   {  Panel p = new Panel();
      
      tf = new TextField(40);
      p.add(tf, "Center");
      add(p, "Center");
      tf.addKeyListener(this);
      
   }

 
   public void  keyPressed(KeyEvent evt)
   {
      int keyCode = evt.getKeyCode();
      String keyString = evt.getKeyText(keyCode);
      System.out.println("Key pressed = " + keyString);
   }
   
   public void keyReleased(KeyEvent evt)
   {
      int keyCode = evt.getKeyCode();
      String keyString = evt.getKeyText(keyCode);
      System.out.println("Key released = " + keyString);
      
   }
   
   public void keyTyped(KeyEvent evt)
   {
      char keyChar = evt.getKeyChar();
      System.out.println("Key typed = " + keyChar);
      if ( !(('0' <= keyChar) && (keyChar <= '9')) ) {
         evt.consume();
      }   
   }
   
 
   public static void main(String[] args)
   {  Frame f = new NumericFieldTest();
      f.show();  
   }
   
   private TextField tf;
 
}
(Review ID: 37438)
======================================================================