如何使得文本框只能输入数字形式字符串????~~~~~~~~~~~~~~`` 我在用JBuilder开发项目时遇到一个问题,就是要求:对于JTextField只能输入诸如1,2,3,35,567....之类的数字形式的字符串,而对于字符类型的字符串,如:"qwe","wert".....刚不能输入,请问代码如何实现?谢谢各位大虾!!:) 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 加一个KEYPRESS的事键监听器,取得值,判断是不是在0~9 import javax.swing.*;import javax.swing.text.*;import javax.swing.event.*;import java.awt.*;import java.awt.event.*;public class MyTextField extends JTextField{ public MyTextField() { super(); } public MyTextField(int len) { super(len); } public MyTextField(String str_text,int len) { super(str_text,len); } protected Document createDefaultModel() { return new NumberOnlyDocument(); } static class NumberOnlyDocument extends PlainDocument { public void insertString(int offs, String str, AttributeSet a) throws BadLocationException { if (str == null) { return; } char[] upper = str.toCharArray(); int length=0; for (int i = 0; i < upper.length; i++) { if (upper[i]>='0'&&upper[i]<='9') { upper[length++] = upper[i]; } } super.insertString(offs, new String(upper,0,length), a); } } } 在提交的时候对text框中的数据做个判断,返回false即输入不合法,true为合法 public boolean isCode(String strIn) { for (int i = 0; i < strIn.length(); i++) { if (!((strIn.charAt(i) >= '0' && strIn.charAt(i) <= '9') || (strIn.charAt(i) >= 'a' && strIn.charAt(i) <= 'z') || (strIn.charAt(i) >= 'A' && strIn.charAt(i) <= 'Z'))) { return false; } } return true; } onkeypress="return event.keyCode>=48&&event.keyCode<=57||(this.value.indexOf('.')<0?event.keyCode==46:false)" onpaste="return !clipboardData.getData('text').match(/\D/)" ondragenter="return false" class name extends KeyAdapter{ public void keyPressed(KeyEvent e){ char c = e.getKeyChar(); if(!Character.isDigit(c)){ if(e.getKeyCode() == e.VK_BACK_SPACE) ;//the back space can not be consumed! else e.consume(); } } }最后在jTextField 添加 jtf.addKeyListener(new name());一切OK了, Array,ArrayList排序问题 字符串匹配文件中的内容的问题 怎样把flash的指定帧转为图片? 菜鸟提问之NO.1 我的环境设置 线程的考题,谁给答案并解释? 初学,不才,望解惑 高手请教如何取一字符串的长度(不是字节长度) 关于JAVA的JIT webspere studio application developer 的编辑器中不能输入中文!? jsp+tomcat做论坛老是提示类版本不对什么原因啊? java文档里Deprecated是什么意思?
import javax.swing.text.*;
import javax.swing.event.*;
import java.awt.*;
import java.awt.event.*;
public class MyTextField extends JTextField
{
public MyTextField()
{
super();
}
public MyTextField(int len)
{
super(len);
}
public MyTextField(String str_text,int len)
{
super(str_text,len);
}
protected Document createDefaultModel() {
return new NumberOnlyDocument();
} static class NumberOnlyDocument extends PlainDocument
{
public void insertString(int offs, String str, AttributeSet a)
throws BadLocationException
{
if (str == null)
{
return;
}
char[] upper = str.toCharArray();
int length=0;
for (int i = 0; i < upper.length; i++)
{
if (upper[i]>='0'&&upper[i]<='9')
{
upper[length++] = upper[i];
}
}
super.insertString(offs, new String(upper,0,length), a);
}
}
}
public boolean isCode(String strIn) {
for (int i = 0; i < strIn.length(); i++) {
if (!((strIn.charAt(i) >= '0' && strIn.charAt(i) <= '9')
|| (strIn.charAt(i) >= 'a' && strIn.charAt(i) <= 'z')
|| (strIn.charAt(i) >= 'A' && strIn.charAt(i) <= 'Z'))) {
return false;
}
}
return true;
}
public void keyPressed(KeyEvent e){
char c = e.getKeyChar();
if(!Character.isDigit(c)){
if(e.getKeyCode() == e.VK_BACK_SPACE)
;//the back space can not be consumed!
else
e.consume();
}
}
}
最后在jTextField 添加 jtf.addKeyListener(new name());
一切OK了,