当前位置: 技术问答>java相关
JTextField怎么得不到焦点?用requestFocus()怎么不行?
来源: 互联网 发布时间:2015-05-29
本文导语: 为了检查文本域的内容是否合法采用如下代码 public void jTextField1_FocusLost(java.awt.event.FocusEvent focusEvent) { if (focusEvent.getComponent() == ivjJTextField1 && !focusEvent.isTemporary()) { if (!checkIntFormat(ivjJTextField1...
为了检查文本域的内容是否合法采用如下代码
public void jTextField1_FocusLost(java.awt.event.FocusEvent focusEvent) {
if (focusEvent.getComponent() == ivjJTextField1 && !focusEvent.isTemporary()) {
if (!checkIntFormat(ivjJTextField1.getText().trim())) {
ivjJTextField1.requestFocus();
JOptionPane.showMessageDialog(null, "请正确输入号码!", "输入错误", JOptionPane.ERROR_MESSAGE);
}
}
return;
}
是在visualage for java中的代码,但就是没有达到预期的效果(即如果不合法则光标回退到该文本域)。请问怎么回事?
public void jTextField1_FocusLost(java.awt.event.FocusEvent focusEvent) {
if (focusEvent.getComponent() == ivjJTextField1 && !focusEvent.isTemporary()) {
if (!checkIntFormat(ivjJTextField1.getText().trim())) {
ivjJTextField1.requestFocus();
JOptionPane.showMessageDialog(null, "请正确输入号码!", "输入错误", JOptionPane.ERROR_MESSAGE);
}
}
return;
}
是在visualage for java中的代码,但就是没有达到预期的效果(即如果不合法则光标回退到该文本域)。请问怎么回事?
|
谁说不行的?我真怀疑你有没有把它加入失去焦点的事件中。你试试新建一个class。
class TextFocusListener extends FocusAdapter{}
在里面重写
public void focusLost(FocusEvent e){}方法,实现你的想法。
在你的JTextField声明后加入addFocusListener(new TextFocusListener());
textField.add(new );
class TextFocusListener extends FocusAdapter{}
在里面重写
public void focusLost(FocusEvent e){}方法,实现你的想法。
在你的JTextField声明后加入addFocusListener(new TextFocusListener());
textField.add(new );
|
可以放在得到焦点的事件中处理。试试看!
|
把ivjJTextField1.requestFocus();放到弹出提示框JOptionPane的后面试试
还有你前面的判断也错了,类之间不能用==判断的,必须用equals()方法判断,并且,你还必须作强制转换.
还有你前面的判断也错了,类之间不能用==判断的,必须用equals()方法判断,并且,你还必须作强制转换.
您可能感兴趣的文章:
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。