有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

EclipseJava空指针异常JMenuBar

我今天在Eclipse3.8平台上遇到了一个java错误

我尝试在JFrame上生成一个简单的菜单栏。JMenuBar包含JMenu(“帮助”),JMenu包含JMenuItem(“退出”)。该类扩展了JFrame。使用函数(此。)setJMenuBar(菜单栏);我尝试将我的菜单栏设置为JFrame,只要我只有一个菜单栏,它就可以正常工作

GUI类代码:

import javax.swing.*;
import java.awt.*;

public class Taschenrechner extends JFrame{

//Instanzvariablen im Zusamenhang mit dem Menu
private JMenuBar MenuBar;
private JMenu MenuHelp;
private JMenuItem MenuHelpQuit;

public Taschenrechner() {
    super();

    //Flaeche festlegen
    this.setSize(300,300);

    //Menukomponenten definieren
    MenuHelp= new JMenu("Help");
    MenuHelpQuit=new JMenuItem("Quit");

    //Menukomponenten zusammensetzen
    MenuHelp.add(MenuHelpQuit);
    MenuBar.add(MenuHelp);
    this.setJMenuBar(MenuBar);
}
}

我的主类代码(declare objekt和setVisible):

public class Taschenrechnerstart {

public static void main(String[] args) {
    Taschenrechner taschenrechner1 = new Taschenrechner();
    taschenrechner1.setVisible(true);
}
}

现在,在启动代码时,我在第行的GUI类中得到一个NullPointerException错误:

MenuBar.add(MenuHelp);

以及行上主类中的NullPointerException错误:

Taschenrechner taschenrechner1 = new Taschenrechner();

有人知道为什么我的代码不起作用吗


共 (1) 个答案

  1. # 1 楼答案

    MenuBar.add(MenuHelp);
    

    您正在访问MenuBar变量,但没有初始化它

    你错过了一次机会

    MenuBar = new JMenuBar (..);
    

    顺便说一句,如果使用Java命名约定(变量应该以小写字母开头),代码的可读性会更高