作者calais007 (浅水中)
看板java
标题Re: [问题] 关於JTextField的问题
时间Sat Jun 24 11:58:08 2006
※ 引述《zxwxz (zxwxz)》之铭言:
: 现在正在做gui的介面
: 由於使用者输入可能出现很多问题
: 因此想直接把一个JTextField改写成只能接受某些特定文字或数字
: 但是问题来了就是如果是使用.addKeyListener()
: 虽然可以抓的到文字部分
: 但是key的触发并不是文字改变的触发
: 因此抓到了event却不知道怎样把这个event挡掉
: 例如想挡掉非数字输入
: 输入a
: 可是却变成抓到event VK_a
: 但是此时text内容还没变动
: 请问有办法抓到文字内容被变更的Listener吗?
overwrite processEvent(KeyEvent e)
要达到你要的效果如下程式所示
import javax.swing.*;
import java.awt.event.*;
public class myTextField extends JTextField{
public myTextField(int col){
super(col);
}
protected void processKeyEvent(KeyEvent e) {
char c = e.getKeyChar();
//如果你有需要的话可以在这里加你想要的alert
//if key is NOT between 0 and 9
//do nothing
if(c <48 || c>57)
return;
else
super.processKeyEvent(e);
}
}
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 140.123.105.36
※ 编辑: calais007 来自: 140.123.105.36 (06/24 11:59)
※ 编辑: calais007 来自: 140.123.105.36 (06/24 12:03)
※ 编辑: calais007 来自: 140.123.105.36 (06/24 12:04)