关于JTextField校验的问题

icefire1512 2006-03-30 04:20:30
InputVerifier iV=new InputVerifier(){
public boolean verify(JComponent source) {
JTextField jTextField = (JTextField) source;
boolean invalid = true;
try {
if (Integer.parseInt(jTextField.getText()) <= 0) {
invalid = false;
}
} catch (Throwable t) {
System.out.println("11");
invalid = false;
}
if (!invalid) {
System.out.println("22");
JOptionPane.showMessageDialog(jTextField.getParent().
getParent(),
"text you have inputed is wrong at:" +
jTextField.getName() +
"\nplease input number~",
"Error",
JOptionPane.ERROR_MESSAGE);
}
return invalid;
}
};

JTextField t1=new JTextField();
JTextField t2=new JTextField();
t1.setInputVerifier(iV);
t2.setInputVerifier(iV);
为什么出现死循环呢?在将t1的焦点试图放到t2上的时候,在控制台上就会循环的打印出:
11

22

11

22

11

22

11

22

11

22

11

22

11

22

11

22

11

22
请问各位大虾是什么原因呢?
...全文
130 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
icefire1512 2006-03-31
  • 打赏
  • 举报
回复
果然是这样,把message去掉后就不回出现死循环了
还有一个问题,就是如果把message去掉后,怎么能提醒用户什么地方出了错呢?
louisqiang 2006-03-30
  • 打赏
  • 举报
回复
不要用对话提示框,我想可能是与对话框焦点反复循环切换引起的。

62,629

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧