代码编译成功但是运行不了,运行报错
错误:
Exception in thread "main" java.lang.NullPointerException
at java.awt.Container.addImpl(Container.java:1095)
at java.awt.Container.add(Container.java:419)
at javax.swing.JPopupMenu.add(JPopupMenu.java:291)
at javax.swing.JMenu.add(JMenu.java:574)
at Demo_6.Demo6__6.Display(Demo6_6.java:28)
at Demo_6.Demo6_6.main(Demo6_6.java:39)
代码:
import javax.swing.*;
class Demo6__6 extends JFrame {
JMenuBar jMenuBar = new JMenuBar();
JMenu jMenu1 = new JMenu("color");
JMenu jMenu2 = new JMenu("exit");
JMenuItem jMenuItem1,jMenuItem2,jMenuItem3;
void Display(){
jMenuItem1 = new JMenuItem("green");
jMenuItem1 = new JMenuItem("yellow");
jMenuItem1 = new JMenuItem("blue");
this.setJMenuBar(jMenuBar);
jMenuBar.add(jMenu1);
jMenuBar.add(jMenu2);
jMenu1.add(jMenuItem1);
jMenu1.add(jMenuItem2);
jMenu1.add(jMenuItem3);
this.setTitle("MyMune");
this.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
this.setSize(300,300);
this.setVisible(true);
}
}
public class Demo6_6 {
public static void main(String[] args) {
Demo6__6 exa = new Demo6__6();
exa.Display();
}
}
你的jMenuItem2和jMenuItem3没有初始化,所以添加的时候报错了。我猜应该是你上面这里写错了
jMenuItem1 = new JMenuItem("green");
jMenuItem1 = new JMenuItem("yellow");
jMenuItem1 = new JMenuItem("blue");
改成
jMenuItem1 = new JMenuItem("green");
jMenuItem2 = new JMenuItem("yellow");
jMenuItem3 = new JMenuItem("blue");