Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/306.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 从JPanel类调用JFrame上的函数_Java_Swing_Nullpointerexception - Fatal编程技术网

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++自动分配非指针变量,这是我经常混淆的东西;