2015-06-20 184 views
1

今天在eclipse 3.8平台上卡住了java错误。java null指针异常JMenuBar

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

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); 
} 
} 

我的主类代码(声明OBJEKT和调用setVisible):

public class Taschenrechnerstart { 

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

现在开始上的代码,我得到一个NullPointerException错误的GUI的class on line:

MenuBar.add(MenuHelp); 

and the main-class on the line上的NullPointerException-错误:

Taschenrechner taschenrechner1 = new Taschenrechner(); 

有人有一个想法,为什么我的代码不工作?

+0

你没有初始化'MenuBar',默认情况下它被设置为'null',所以你的代码实际上是'null.add(MenuHelp);'。 – Maroun

回答

2
MenuBar.add(MenuHelp); 

您正在访问MenuBar变量而未初始化它。

你缺少一个

MenuBar = new JMenuBar (..); 

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

+0

你说得对,谢谢。感谢您的快速回答。我绝对没有看到它。 – stackoverflow321