我些两个两个类,一个父类Parent,一个子类继承Parent的Child类
代码如下:
public class Parent
    extends JFrame
{
    public Parent()
    {
        try {
            jbInit();
        }
        catch (Exception exception) {
            exception.printStackTrace();
        }
    }    protected void jbInit() throws Exception
    {
        getContentPane().setLayout(null);
        jButton1.setBounds(new Rectangle(33, 27, 73, 26));
        jButton1.setText("jButton1");
        jTextField1.setText("jTextField1");
        jTextField1.setBounds(new Rectangle(139, 112, 111, 22));
        jToggleButton1.setText("jToggleButton1");
        jToggleButton1.setBounds(new Rectangle(143, 27, 105, 26));
        this.setVisible(true);
        this.getContentPane().add(jTextField1, null);
        this.getContentPane().add(jToggleButton1, null);
        this.getContentPane().add(jButton1, null);
        this.getContentPane().add(jButton2, null);
        jButton2.setBounds(new Rectangle(35, 107, 73, 26));
        jButton2.setText("jButton2");
    }    JButton jButton1 = new JButton();
    JButton jButton2 = new JButton();
    JToggleButton jToggleButton1 = new JToggleButton();
    JTextField jTextField1 = new JTextField();
}
public class Child extends Parent
{
    public Child()
    {
        this.setVisible(true);
        try {
            jbInit();
        }
        catch (Exception ex) {
            ex.printStackTrace();
        }
    }    public static void main(String[] args)
    {
        Child child = new Child();
    }    protected void jbInit() throws Exception
    {        
        this.getContentPane().setLayout(null);
        jButton1.setBounds(new Rectangle(108, 213, 73, 26)); //异常的地方
        jButton1.setText("jButton1");
        super.getContentPane().add(jButton1);
        this.setTitle("测试窗体");
        super.jbInit();
    }    JButton jButton1 = new JButton();
}
运行Child类,程序可以通过且窗体也可以显示,但也附带出现了一下异常信息:
java.lang.NullPointerException
at forminherit.Child.jbInit(Child.java:28)//点击此处挑至jButton1.setBounds(new Rectangle...
at forminherit.Parent.<init>(Parent.java:16)
at forminherit.Child.<init>(Child.java:10)
at forminherit.Child.main(Child.java:22)这个问题要怎么解决?

解决方案 »

  1.   

    此回复为自动发出,仅用于显示而已,并无任何其他特殊作用
    楼主【pmallen】截止到2008-07-11 17:49:40的历史汇总数据(不包括此帖):
    发帖的总数量:3                        发帖的总分数:60                       每贴平均分数:20                       
    回帖的总数量:46                       得分贴总数量:13                       回帖的得分率:28%                      
    结贴的总数量:2                        结贴的总分数:40                       
    无满意结贴数:0                        无满意结贴分:0                        
    未结的帖子数:1                        未结的总分数:20                       
    结贴的百分比:66.67 %               结分的百分比:66.67 %                  
    无满意结贴率:0.00  %               无满意结分率:0.00  %                  
    楼主加油
      

  2.   

    把父类中的jbInit()去掉就可以了。
    因为多态的问题,子类的jbInit() 调用了两遍。
      

  3.   

    谢谢楼上的,这个问题这样的确可以解决
    只是如果我再想调用父类,对父类进行操作,那么去掉jbInit()这个父类的窗体根本没法操作?