急问小问题:如何限制JTextField中的特输字符的个数 正在做的东西也有类似的问题,关注一下,到时候自己可以省不少事。我手中有一个程序就有这个功能,是VB写的,可是没源码,我现在的任务就是根据这个程序的功能用JAVA全部改写,累死了 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 可以试试下述代码,不一定成功try{//如果可以转换成功,表示字符合法double temp=Double.valueof(tf.getText());}catch(Exception){//如果出现异常,表示这里面的字符有非法字符} swing里面有一个JFormattedTextField,可以实现~setFormatter(JFormattedTextField.AbstractFormatter format) setFormatterFactory(JFormattedTextField.AbstractFormatterFactory tf) 这两个方法来设定Formatter 我手头上这个VB程序里是在输入的时候就限制了,比如只能如数数字的地方,你按字母的话在TEXTFIELD里根本就不显示 textfield.addKeyListener(new KeyAdapter(){ public void keyPressed(KeyEvent e) { if (textfield.getText().length() > 10) { e.consume(); //超过10个,不让这个出入进入JTextField } int keyCode = e.getKeyCode(); //判断这个输入是否合法 switch (keyCode) { case KeyEvent.VK_XXXXXXXXXXX: //OK case ...... break; default: //不合法 e.consume(); //IMPORTANT,不让这个出入进入JTextField } }}); to: nwpulipeng(夜听春雨) 正则表达式该怎么写呢?没用过不熟悉 谢谢大家,我最后用的办法是:jTextField3.addKeyListener(new CheckComponent_jTextField1_keyAdaptert(this));class CheckComponent_jTextField1_keyAdaptert extends java.awt.event.KeyAdapter { Frame1 adaptee; CheckComponent_jTextField1_keyAdaptert(Frame1 adaptee) { this.adaptee = adaptee; } public void keyTyped(KeyEvent e) { adaptee.jTextField1_keyTyped(e); } } void jTextField1_keyTyped(KeyEvent e) { Object o = e.getSource(); if (o instanceof JTextField){ JTextField jtf=(JTextField)o; char keyCh = e.getKeyChar(); int x=0; if ((keyCh >= '0')&&(keyCh <= '9')){ } else if(keyCh=='.') { for(int i=0;i<jtf.getText().length();i++) if(jtf.getText().charAt(i)=='.') { x++; System.out.println(x);} if (x> 0) e.consume(); } else e.consume(); } }Frame1是放jTextField3的jframe Android -----记住密码 ArrayList 的size()是返回元素个数,那么有多少个空间用什么方法? '\0'是空格转义符还是结束转义符呀 求助:JTree web打印的问题,请大家帮忙 请问:JAVA 与IE 之间也存在内战吗?有分送呀! 请大家提供一个介绍使用JBuilder的链接 字符串处理的问题? 每天给你30分。。。。 import au.net.aba.crypto.provider.*; 有JFC资料? 疑惑:关于java系统接口的问题
try
{
//如果可以转换成功,表示字符合法
double temp=Double.valueof(tf.getText());
}
catch(Exception)
{
//如果出现异常,表示这里面的字符有非法字符
}
setFormatter(JFormattedTextField.AbstractFormatter format)
setFormatterFactory(JFormattedTextField.AbstractFormatterFactory tf) 这两个方法来设定Formatter
public void keyPressed(KeyEvent e) { if (textfield.getText().length() > 10) {
e.consume(); //超过10个,不让这个出入进入JTextField
} int keyCode = e.getKeyCode();
//判断这个输入是否合法
switch (keyCode) {
case KeyEvent.VK_XXXXXXXXXXX: //OK
case ......
break;
default:
//不合法
e.consume(); //IMPORTANT,不让这个出入进入JTextField
}
}
});
jTextField3.addKeyListener(new CheckComponent_jTextField1_keyAdaptert(this));
class CheckComponent_jTextField1_keyAdaptert extends java.awt.event.KeyAdapter {
Frame1 adaptee; CheckComponent_jTextField1_keyAdaptert(Frame1 adaptee) {
this.adaptee = adaptee;
}
public void keyTyped(KeyEvent e) {
adaptee.jTextField1_keyTyped(e);
}
}
void jTextField1_keyTyped(KeyEvent e) {
Object o = e.getSource(); if (o instanceof JTextField){
JTextField jtf=(JTextField)o;
char keyCh = e.getKeyChar();
int x=0;
if ((keyCh >= '0')&&(keyCh <= '9')){ }
else if(keyCh=='.')
{
for(int i=0;i<jtf.getText().length();i++)
if(jtf.getText().charAt(i)=='.')
{ x++; System.out.println(x);}
if (x> 0)
e.consume();
}
else
e.consume();
}
}Frame1是放jTextField3的jframe