我有一个登录JPanel
,它以编程方式添加到JFrame
中。问题是我想使用按钮从登录JFrame
类调用JPanel
上的函数。
在此,我已在MainFrame
mainFrame
类中将PartLogin
声明为JPanel
:
public class PartLogin extends JPanel {
MainFrame mainFrame;
然后,我从JFrame
创建了一个公共函数,然后通过点击按钮从PartLogin
调用它
mainFrame.changeLabel();
我有一个NullPointerException
指向buttonclick代码。
mainFrame.changeLabel();
答案 0 :(得分:2)
NullPointerException
通常表示需要非null的对象为null。在这里,这可能是mainFrame
。 Java不是C ++,所以语句等于:
MainFrame mainFrame = null;
您应该对此进行更改,以使mainFrame
不为空。有两种方法:
在声明中指定值:
MainFrame mainFrame = new MainFrame();
在构造函数中赋值:
private MainFrame mainFrame; // don't must be private
public PartLogin ()
{
super(); // call ctor of superclass
mainFrame = new MainFrame();
// ...
}