Java 从JPanel类调用JFrame上的函数
我有一个登录名Java 从JPanel类调用JFrame上的函数,java,swing,nullpointerexception,Java,Swing,Nullpointerexception,我有一个登录名JPanel,它是通过编程方式添加到JFrame中的。问题是我想使用一个按钮从登录JPanel类调用JFrame上的函数 在这里,我在PartLoginJPanel类中将MainFrame声明为MainFrame: public class PartLogin extends JPanel { MainFrame mainFrame; 然后,我从JFrame创建了一个公共函数,然后通过单击按钮从PartLogin调用它 mainFrame.changeLabel();
JPanel
,它是通过编程方式添加到JFrame
中的。问题是我想使用一个按钮从登录JPanel
类调用JFrame
上的函数
在这里,我在PartLogin
JPanel
类中将MainFrame
声明为MainFrame
:
public class PartLogin extends JPanel {
MainFrame mainFrame;
然后,我从JFrame
创建了一个公共函数,然后通过单击按钮从PartLogin
调用它
mainFrame.changeLabel();
我有一个NullPointerException
指向按钮的内部单击code
mainFrame.changeLabel();
NullPointerException
通常表示需要非null的对象为null。这里,这可能是大型机
。java不是C++,所以语句等于:
MainFrame mainFrame = null;
您应该对此进行更改,以使大型机不为空。有两种方法:
在声明中赋值:
MainFrame mainFrame = new MainFrame();
在构造函数中赋值:
private MainFrame mainFrame; // don't must be private
public PartLogin ()
{
super(); // call ctor of superclass
mainFrame = new MainFrame();
// ...
}
哇,真管用!我是不是太明显了,我来自C++?顺便说一句,你救了我:D@PrincetonMielJurilla如果答案有效,请将答案标记为已接受。C++自动分配非指针变量,这是我经常混淆的东西;