我今天在 eclipse 3.8 平台上遇到了一个 java 错误。
我尝试在JFrame上生成一个简单的菜单栏。JMenuBar 包含 JMenu("Help"),JMenu 包含 JMenuItem("Quit")。该类扩展了一个 JFrame。使用函数(这个。setJMenuBar(MenuBar);我尝试将我的菜单栏设置为我的 JFrame,只要我只有一个菜单栏,它应该可以正常工作。
图形用户界面类代码:
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);
}
}
现在在启动代码时,我在线在 GUI 类中收到一个 NullPointerException 错误:
MenuBar.add(MenuHelp);
以及该行主类中的 NullPointerException-error:
Taschenrechner taschenrechner1 = new Taschenrechner();
有人知道为什么我的代码不起作用吗?
MenuBar.add(MenuHelp);
您正在访问菜单栏变量而不对其进行初始化。
您缺少一个
MenuBar = new JMenuBar (..);
顺便说一句,如果您使用 Java 命名约定(变量应以小写字母开头),您的代码将更具可读性。