当前位置: 代码迷 >> Java相关 >> 怎么让文本框只能输入数字呢?
  详细解决方案

怎么让文本框只能输入数字呢?

热度:106   发布时间:2007-11-12 17:42:14.0
怎么让文本框只能输入数字呢?

这个是一个比较大小的程序!!但是我不会判断文本框里输入的是否为数字!发凡大家帮忙!


import java.awt.*;
import java.applet.*;


public class daxiao extends Applet{

Label tishi1,tishi2,tishi3,jieguo;
TextField a,b,c;
Button m;
int s1,s2,s3;

public void init()
{
tishi1 = new Label("请输入第一个数字");
a=new TextField(4);
tishi2 = new Label("请输入第二个数字");
b=new TextField(4);
tishi3 = new Label("请输入第三个数字");
c=new TextField(4);
m=new Button("确定");
jieguo=new Label("");
add(tishi1);
add(a);
add(tishi2);
add(b);
add(tishi3);
add(c);
add(m);
add(jieguo);
}

public boolean action(Event e , Object o)
{
if (e.target == m)
{
s1=Integer.parseInt(a.getText());
s2=Integer.parseInt(b.getText());
s3=Integer.parseInt(c.getText());



if(s1==s2&&s1==s3&& s2==s3)
{
jieguo.setText("字符不能全部相等!");
}
else
{

if ( s1 >= s2 && s1 >= s3 )
{
jieguo.setText("最大的数是: "+s1);
}

if ( s2 >= s1 && s2 >= s3 )
{
jieguo.setText("最大的数是: "+s2);
}

else jieguo.setText("最大的数是: "+s3);
}
}

repaint();
return true;


}
}

搜索更多相关的解决方案: 文本  数字  输入  

----------------解决方案--------------------------------------------------------
java是不是也有正则表达式啊  呵呵 不清楚
----------------解决方案--------------------------------------------------------

boolean Digit(){
String s=文本框对象.getText();
char[] ch=s.toCharArray();
for(character c:ch){
if(c.isDigit()){
renturn false;
}
return true;
}
这样判断一下吧



----------------解决方案--------------------------------------------------------
我很笨 判断单个字符是否都在'0''9'之间
----------------解决方案--------------------------------------------------------
学习!
----------------解决方案--------------------------------------------------------

还是不行啊!


----------------解决方案--------------------------------------------------------

正则表达式。。
[CODE]Pattern p=new Pattern.compile("//d*");
Match m=p.matcher(text.getText());
if(m.matches()){
............
}[/CODE]


----------------解决方案--------------------------------------------------------

  增加了一些类,现在可以实现只可以输入数字这一个功能了
  
 import java.applet.Applet;
import java.awt.Button;
import java.awt.Event;
import java.awt.Label;
import java.awt.TextField;

import javax.swing.InputVerifier;
import javax.swing.JComponent;
import javax.swing.JTextField;


public class daxiao extends Applet{

Label tishi1,tishi2,tishi3,jieguo;
JTextField a,b,c;
Button m;
int s1,s2,s3;
myVertifier ver;

public void init()
{
tishi1 = new Label("请输入第一个数字");
a=new JTextField(4);
tishi2 = new Label("请输入第二个数字");
b=new JTextField(4);
tishi3 = new Label("请输入第三个数字");
c=new JTextField(4);
m=new Button("确定");
jieguo=new Label("");

ver = new myVertifier();
a.setInputVerifier(ver);
b.setInputVerifier(ver);
c.setInputVerifier(ver);

add(tishi1);
add(a);
add(tishi2);
add(b);
add(tishi3);
add(c);
add(m);
add(jieguo);
}

public boolean action(Event e , Object o)
{
if (e.target == m)
{
s1=Integer.parseInt(a.getText());
s2=Integer.parseInt(b.getText());
s3=Integer.parseInt(c.getText());

if(s1==s2&&s1==s3&& s2==s3)
{
jieguo.setText("字符不能全部相等!");
}
else
{

if ( s1 >= s2 && s1 >= s3 )
{
jieguo.setText("最大的数是: "+s1);
}

if ( s2 >= s1 && s2 >= s3 )
{
jieguo.setText("最大的数是: "+s2);
}

else jieguo.setText("最大的数是: "+s3);
}
}

repaint();
return true;
}
}

class myVertifier extends InputVerifier
{
public myVertifier()
{

}
public boolean verify(JComponent input)
{
JTextField jtf = ((JTextField)input);
String str = jtf.getText();
try{
Integer.parseInt(str); //是否可以轮换,否则就抛出异常
}catch(Exception e)
{
return false;
}
return true;
}
public boolean shouldYieldFocus(JComponent input)
{
return this.verify(input);
}
}


----------------解决方案--------------------------------------------------------
  如果不是一个有效的数字,是不可以输入到下一个JTextField的,你看一下吧,如果还有什么,随时发贴吧。。。。
----------------解决方案--------------------------------------------------------
回复 楼主
用 String 带 的 方法
matches(String regex)
          告知此字符串是否匹配给定的正则表达式。

参数 regex , 就 是 正则 表达式 的 字符串 , 用 的
时候 注意 的 是 要 有些 符号 要 用 转义 字符 ,不然
识别 不 了
----------------解决方案--------------------------------------------------------
  相关解决方案