文本框中只能输入数字:
Box1jTextField.addKeyListener(new KeyListener() {
@Override
public void keyTyped(KeyEvent e) {
int temp = e.getKeyChar();
if(temp == 10){}//按回车时
if(temp==46)
{
e.consume();
}
else{ //没有按小数点时
if(temp != 8){ //没有按backspace时
//下面检查是不是在0~9之间;
if(temp > 57){
e.consume(); //如果不是则消除key事件,也就是按了键盘以后没有反应;
}else if(temp < 48){
e.consume();
}
}
}
}
@Override
public void keyReleased(KeyEvent e) {
// TODO Auto-generated method stub
}
@Override
public void keyPressed(KeyEvent e) {
// TODO Auto-generated method stub
}
});
此种方式,不能防止Ctrl+V的操作。Ctrl+V一个字符串,还是能写字符串,后台需要进一步判断。
判断输入是否为数字,并去除前面多余的0:
public boolean isNumber(String str){
Pattern pattern = Pattern.compile("[0-9]*");//匹配模式
Matcher isNumberOrNot = pattern.matcher(str);
if( !isNumberOrNot.matches() ){
return false;
}
return true;
}