如何让文本框只对数字和退格有效?

dylsz 2004-03-16 12:14:47
我的程序如下:
import javax.swing.*;
import java.awt.event.*;
import java.awt.*;
//只能接受数字
public class NumericTextField extends JTextField {

public NumericTextField(){
super();
enableEvents(AWTEvent.KEY_EVENT_MASK);
}

public NumericTextField(int len){
super(len);
enableEvents(AWTEvent.KEY_EVENT_MASK);
}

protected void processKeyEvent(KeyEvent e){
char ch = e.getKeyChar();
if(Character.isDigit(ch) || e.getKeyCode() == KeyEvent.VK_BACK_SPACE){
super.processKeyEvent(e);
}else{
e.consume();
}
}
}
但是对退格无效,请问得怎么修改?
谢谢.
...全文
27 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
wilddonkey 2004-03-16
  • 打赏
  • 举报
回复
帮你up一下
dylsz 2004-03-16
  • 打赏
  • 举报
回复
if(Character.isDigit(ch) || e.getKeyCode() == KeyEvent.VK_BACK_SPACE){
=>
if(Character.isDigit(ch) || (int)ch == KeyEvent.VK_BACK_SPACE){

3q.
shine333 2004-03-16
  • 打赏
  • 举报
回复
另外还需要将<-键从textField的快捷方式中注销掉,具体方法忘了,帮你回忆一下
shine333 2004-03-16
  • 打赏
  • 举报
回复
建议今后对所有的KeyEvent都采用getKeyCode();判断按键,而非使用getKeyChar();即使是对数字,具体按键的值请参阅KeyEvent.VK_XXX

int code = e.getKeyCode();
if (code == KeyEvent.VK_BACK_SPACE)
dylsz 2004-03-16
  • 打赏
  • 举报
回复
各位高手帮帮我,谢谢了....


62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧