我开发的平台是netbeans,窗体上有一个JTextField组件,我想在JTextField失去焦点时判断JTextField内容是否为空,如果为空的话,弹出一个对话框,告诉用户输入,再让JTextField得到焦点,代码如下:
private void check(java.awt.event.FocusEvent evt) {
if(txtName.getText().equals("")){
JOptionPane.showMessageDialog(null,"顾客姓名不可为空白","在线超市",JOptionPane.OK_OPTION);
txtName.requestFocus();
}
}
但是在操作时,弹出对话框之后,按确定,还是会再弹出对话框,一直要弹出几遍,请问这是为什么?我是在JTextField组件的KeyPressed事件中定义一个check()函数来实现这个功能的.
private void check(java.awt.event.FocusEvent evt) {
if(txtName.getText().equals("")){
JOptionPane.showMessageDialog(null,"顾客姓名不可为空白","在线超市",JOptionPane.OK_OPTION);
txtName.requestFocus();
}
}
但是在操作时,弹出对话框之后,按确定,还是会再弹出对话框,一直要弹出几遍,请问这是为什么?我是在JTextField组件的KeyPressed事件中定义一个check()函数来实现这个功能的.
JTextField组件用KeyPressed事件来监听代码不正确,是单击事件,用actionPerformed()实践来监听,且面把应该是这样写JOptionPane.showMessageDialog(this,"客姓名不可为空白","在线超市",JOptionPane.OK_OPTION);
Component newFocusComp = e.getOppositeComponent();
if (newFocusComp != null) {
txtName.requestFocus();
JOptionPane.showMessageDialog(e.getComponent(),
"顾客姓名不可为空白", "在线超市", JOptionPane.OK_OPTION);
}
}
JOptionPane.showMessageDialog(null,"顾客姓名不可为空白","在线超市",JOptionPane.OK_OPTION);
this.return;
}