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