getContentPane()返回null

时间:2013-04-23 03:07:45

标签: java swing nullpointerexception

我有一个扩展JFrame的课程。在其构造函数中,我调用getContentPane()并将其存储在Container中。但是,getContentPane()似乎返回null,因为System.out.println(container)打印“null”并且调用container.setLayout(new BorderLayout)会抛出空指针异常。

一些示例代码:

public class Example extends JFrame implements ... {
    public Example(){
        Container container = getContentPane();
        System.out.println(container);    //prints "null"
        container.setLayout(new BorderLayout());    //throws nullpointerexception

此外,在类本身上调用setLayout(即this.setLayout())也会抛出NullPointerException,但如果我正确理解文档,这是因为在框架上调用它只需委托它到框架的contentPane。我正在使用Eclipse,它没有指出任何警告或错误。该异常不是很有用,因为它只追溯两个级别(main(),实例化类,到setLayout()调用)。

如果有必要,我可以发布我的整个代码,但我不愿意,因为这是一个课程作业,我不想让反作弊软件标记它。

1 个答案:

答案 0 :(得分:1)

发现问题。当我在Eclipse中创建类时,它会自动生成一堆方法,其中一个方法是getContentPane()。自动生成的方法只返回n​​ull,这导致了我的问题。我摆脱了所有自动生成的方法,现在可以正常工作。