请帮忙修改下面代码,使两个文本框只能输入数字,若输入的不是数字提示:请输入数字。

packagepack1;importjava.awt.*;importjava.awt.event.*;classatmimplementsActionListener... package pack1;
import java.awt.*;
import java.awt.event.*;
class atm implements ActionListener,TextListener,WindowListener{
TextField t1,t2,t3;
TextArea t;
Button b1,b2;
Frame f;
Panel p,p1,p2;
Label l1;
public atm()
{

Label label1=new Label("卡号:",Label.RIGHT);
label1.setFont(new Font("黑体",Font.BOLD,12));
Label label2=new Label("密码:",Label.RIGHT);
label2.setFont(new Font("黑体",Font.BOLD,12));
Label label3=new Label("签名:",Label.RIGHT);
label3.setFont(new Font("黑体",Font.BOLD,12));
p=new Panel();
p1=new Panel();
p2=new Panel();
t=new TextArea("欢迎您使用ATM机取款!");
t1=new TextField("请输入卡号",19);
t2=new TextField("请输入密码",6);
t2.setEchoChar('#');
t2.setEditable(false);
t3=new TextField("薛美娟");
t3.setEditable(false);
b1=new Button("确定");
b1.setEnabled(false);
b2=new Button("退出");
f=new Frame("欢迎使用ATM机取款!");

t1.addTextListener(this);
t2.addTextListener(this);
b1.addActionListener(this);
b2.addActionListener(this);
f.addWindowListener(this);

p.setLayout(new GridLayout(3,2,10,10));
p.add(label1);
p.add(t1);
p.add(label2);
p.add(t2);
p.add(label3);
p.add(t3);
p1.add(b1);
p1.add(b2);
p2.setLayout(new GridLayout(2,1));
p2.setBackground(Color.pink);
p2.add(p);
p2.add(p1);
t.setBackground(Color.orange);
f.setLayout(new GridLayout(2,1));
f.setLocation(200,200);
f.setSize(400,400);
f.setVisible(true);
f.add(p2);
f.add(t);

}
public static void main(String atgs[])
{
new atm();
}

public void Keypressed(KeyEvent e){}
public void KeyReleased(KeyEvent e){}
public void textValueChanged(TextEvent e)
{

if(t1.getText()!=null && t1.getText()!="请输入用户名" && t1.getText().length()==19)
{
t1.setEditable(false);
t2.setEditable(true);
b1.setEnabled(false);
}
if(t2.getText()!=null && t2.getText()!="请输入密码" && t2.getText().length()==6)
{
t2.setEditable(false);
b1.setEnabled(true);
}
}
public void actionPerformed(ActionEvent e)
{
if(e.getSource()==b1)
{

String s;
s="欢迎卡号为"+t1.getText()+"密码为"+t2.getText()+"的用户使用!";
t.replaceRange(s, 0, 100);
}
if(e.getSource()==b2)
{
System.exit(0);
}
}
public void windowClosing(WindowEvent e)
{
System.exit(0);
}
public void windowOpened(WindowEvent e){}
public void windowClosed(WindowEvent e){}
public void windowActivated(WindowEvent e){}
public void windowDeactivated(WindowEvent e){}
public void windowIconified(WindowEvent e){}
public void windowDeiconified(WindowEvent e){}

}
展开
 我来答
hitzsf
2011-06-06 · TA获得超过2060个赞
知道大有可为答主
回答量:1741
采纳率:78%
帮助的人:1158万
展开全部
在if 语句里添加 t1.getText().matches("\\d{19}")
\d{19} :表示19个数字
String 现在有个boolean match(String regex)方法,regex 是个正则表达式 字符串,具体规则查阅正则表达式内容

具体如下:
if(t1.getText()!=null && t1.getText().length()==19&& t1.getText().matches("\\d{19}"))
{
t1.setEditable(false);
t2.setEditable(true);
b1.setEnabled(false);
}
else if(t1.getText()!=null && t1.getText().length()==19)
t1.setText("请输入数字");

t2 处理类似
追问
非常感谢。。。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式