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

BlueJ call to public method null pointer exception (java.awt.container)

通常我会在 makeFrame 方法中实例化面板,但我需要使用 CreateButtonPanel() 和 createTextPanel() 这两个单独的方法。问题是当它们不在它自己的方法中时,我无法弄清楚如何让 makeFrame 使用它们,并且当我习惯 JavaScript 我所做的看起来应该起作用时,但它不起作用't.

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

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

相反,让它将新实例分配给 class 级别变量,以便在传递到容器的 add 方法时它不会为空。

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

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

希望这对您有所帮助。