我有一个扩展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()
调用)。
如果有必要,我可以发布我的整个代码,但我不愿意,因为这是一个课程作业,我不想让反作弊软件标记它。
答案 0 :(得分:1)
发现问题。当我在Eclipse中创建类时,它会自动生成一堆方法,其中一个方法是getContentPane()
。自动生成的方法只返回null,这导致了我的问题。我摆脱了所有自动生成的方法,现在可以正常工作。