BlueJ调用public方法空指针异常(java.awt.container)

时间:2015-04-22 16:36:06

标签: java nullpointerexception bluej

通常我会在makeFrame方法中实例化面板,但是我需要使用两个单独的CreateButtonPanel()和createTextPanel()方法。问题是我无法弄清楚当makeFrame不在它自己的方法中时如何让makeFrame使用它们,而当我习惯于JavaScript时,我所做的看起来应该可行,但事实并非如此。 / p>

enter image description here

1 个答案:

答案 0 :(得分:2)

从屏幕截图中,您将在createButtonPanel方法中创建一个局部变量,使其对容器的add方法不可用(null)。

public void createButtonPanel()
{
    JPanel buttonPanel = new JPanel();
}

相反,让它将新实例分配给类级变量,以便在传入容器的add方法时不会为null。

public void createButtonPanel()
{
    this.buttonPanel = new JPanel(); // Now we are assigning to the class member
}

这应该可以解决您的问题。此外,建议您将其移至构造函数调用的初始化方法并将其设为private,因为在这种情况下不会使用public

希望这有帮助。