2 //Title: Open CASCADE Technology Samples
4 //Copyright: Copyright (c) 1999
5 //Author: Natalia Kopnova
6 //Company: Matra Datavision (Nizhny Novgorod branch)
11 import java.awt.event.*;
13 import javax.swing.event.*;
15 public class RealField extends JTextField
16 implements InputMethodListener,
19 private boolean consume = false;
20 private String str = new String("");
22 //=======================================================================//
24 //=======================================================================//
27 addInputMethodListener(this);
31 public RealField(int columns)
34 addInputMethodListener(this);
38 public RealField(String text)
41 addInputMethodListener(this);
45 public RealField(String text, int columns)
48 addInputMethodListener(this);
52 //=======================================================================//
53 /** Returns integer contents of this component */
54 public double getValue()
60 value = new Double((newValue.equals("") || newValue.equals("-")) ?
63 return value.doubleValue();
66 //=======================================================================//
67 // Key listener interface
68 //=======================================================================//
69 public void keyTyped(KeyEvent event)
73 //=======================================================================//
74 public void keyPressed(KeyEvent event)
76 int aKod = event.getKeyCode();
77 if (aKod == event.VK_MINUS)
79 String aStr = getText();
80 int aPos = aStr.indexOf("-");
82 if (aPos == -1) // Minus is not present
84 if ((getCaretPosition()) != 0)
90 else if ((aKod == event.VK_DECIMAL) || (aKod == event.VK_PERIOD))
92 String aStr = getText();
93 int aPos = aStr.indexOf(".");
94 if (aPos != -1) // the point is present in the string
97 else if (!event.isActionKey() && aKod != event.VK_BACK_SPACE &&
98 aKod != event.VK_DELETE)
100 if (!Character.isDigit(event.getKeyChar()))
105 //=======================================================================//
106 public void keyReleased(KeyEvent event)
108 String newValue = getText();
110 if (!newValue.equals(str))
122 //=======================================================================//
123 // InputMethod listener interface
124 //=======================================================================//
125 public void inputMethodTextChanged(InputMethodEvent event)
134 public void caretPositionChanged(InputMethodEvent event)