从JPanel类调用JFrame上的函数

时间:2014-12-22 09:57:54

标签: java swing nullpointerexception

我有一个登录JPanel,它以编程方式添加到JFrame中。问题是我想使用按钮从登录JFrame类调用JPanel上的函数。

在此,我已在MainFrame mainFrame类中将PartLogin声明为JPanel

public class PartLogin extends JPanel {

    MainFrame mainFrame;

然后,我从JFrame创建了一个公共函数,然后通过点击按钮从PartLogin调用它

mainFrame.changeLabel();

我有一个NullPointerException指向buttonclick代码。

mainFrame.changeLabel();

1 个答案:

答案 0 :(得分:2)

NullPointerException通常表示需要非null的对象为null。在这里,这可能是mainFrame。 Java不是C ++,所以语句等于:

MainFrame mainFrame = null;

您应该对此进行更改,以使mainFrame不为空。有两种方法:

  1. 在声明中指定值:

    MainFrame mainFrame = new MainFrame();
    
  2. 在构造函数中赋值:

    private MainFrame mainFrame; // don't must be private
    
    public PartLogin ()
    {
        super(); // call ctor of superclass
        mainFrame = new MainFrame();
        // ...
    }