刚刚用Jigloo GUI Builder, 遇到一个问题,真是费解呀!我想做一个自定义的TextField,当我在其中输入完内容按回车时,焦点会自动转移到下个控件,像按了TAB一样,于是自定义了一个类:import java.awt.event.KeyAdapter;
import java.awt.event.KeyEvent;
import javax.swing.JTextField;public class MyTextFiled extends JTextField {
/**
 * 
 */
private static final long serialVersionUID = 1L; public MyTextFiled() {
super();
init();
} private void init() {
try {
addKeyListener(new KeyAdapter() {
public void keyPressed(KeyEvent evt) {
//Enter代替Tab...
}
});
} catch(Exception e) {

}
}
}然而无法使用这个控件, 报错:
Error creating test.MyTextField
java.lang.reflect.InvocationTargetException, 如果将构造器中的init()注释掉,自定义控件便可以使用,这是为什么??

解决方案 »

  1.   

    事件侦听就这点代码了,并且侦听了什么也没有做啊,就要报错!try {
                addKeyListener(new KeyAdapter() {
                public void keyPressed(KeyEvent evt) {
                    //Enter代替Tab...
                }
            });
            } catch(Exception e) {
                
            }
      

  2.   

    是不是 环境和jdk 不搭?
      

  3.   

    JDK用的是1.6的,Eclipse是3.3,真是不能够理解啊,感觉像是Jigloo的BUG,有时候新建一个窗口,然后把自定义控件拖上去,不会报错,运行还可以达到效果(Enter代替Tab),有时拖上去就报错了...不能理解!
      

  4.   

    谢谢大家的帮助!
    搞了半天终于明白了:
    我在ClassB中引用了自定义控件ClassA,并且在ClassB代码被打开时对ClassA作为改动,导致了不一致,产生了如上的错误.如果要在ClassB引用改动后的ClassA,则需要将ClassB代码重新打开一次.