Article View: borland.public.jbuilder.java.api
Article #3084TextField - How to?
From: Art Smith
Date: Mon, 27 Apr 1998 00:00
Date: Mon, 27 Apr 1998 00:00
78 lines
2768 bytes
2768 bytes
Hi,
I'm trying to develop a class which extends TextField and impliments a
keyPressed method which only accepts "integer" characters (0-9).
What I can't figure out is how to disable the TextFields default echo.
i.e. If the character 'a' is typed I don't want echoed back to the
display.
Is there a standard method for trapping events so it won't get passed
along?
Below is my code so far. It isn't fancy.
Any help would be appreciated.
Art
//
// TextFieldClass which only accepts "integer" characters.
//
package ExperimentalDesign;
import java.awt.*;
import java.awt.event.*;
public class IntegerOnlyTextField extends TextField{
public IntegerOnlyTextField() {
super();
this.addKeyListener(new IntKey());
}
class IntKey extends java.awt.event.KeyAdapter {
public void keyPressed(java.awt.event.KeyEvent keyEvent) {
Object obj = keyEvent.getSource();
if (obj == IntegerOnlyTextField.this) {
IntegerOnlyTextField_keyPressed(keyEvent);
}
}
}
void IntegerOnlyTextField_keyPressed(java.awt.event.KeyEvent keyEvent)
{
char zero = 0x30;
char nine = 0x39;
char charKeyCode = keyEvent.getKeyChar();
int length = this.getText().length();
int cursorPosition = 0;
StringBuffer contents = new StringBuffer();
StringBuffer temp = new StringBuffer(this.getText());
System.out.println("KeyPressed: length = " + length + " Cursor: " +
cursorPosition +
" temp: " + temp.toString() + " Keypressed: " +
charKeyCode);
// Strip off the current character.
for(int i = 0; i <= length-2; i++) {
contents.append(temp.charAt(i));
}
// Put it back on if it's good.
if((charKeyCode >= zero) && (charKeyCode <= nine)) {
contents.append(charKeyCode);
System.out.println("contents: " + contents.toString());
}
this.setColumns(contents.length());
this.setText(contents.toString());
if(cursorPosition < 0) cursorPosition = 0;
this.setCaretPosition(cursorPosition);
}
} // End class IntegerOnlyTextField.
Technical Details
Message-ID:
<3544F974.A46C8412@stat.ufl.edu>Path:
arc1-ca.pugleaf.net!unknown!not-for-mailShow Full Headers
Complete Article Headers
X-Google-Language: ENGLISH,ASCII-7-bit X-Google-Thread: 1089d0,9ebd2b4613535c20,start X-Google-Attributes: gid1089d0,public From: Art Smith <arcs@stat.ufl.edu> Subject: TextField - How to? Date: 1998/04/27 Message-ID: <3544F974.A46C8412@stat.ufl.edu> X-Deja-AN: 348210851 Content-Transfer-Encoding: 7bit Mime-Version: 1.0 Reply-To: arcs@stat.ufl.edu Content-Type: text/plain; charset=us-ascii Organization: University of Florida Newsgroups: borland.public.jbuilder.java.api