BrowserFrame.javaimport java.awt.*;
import java.awt.event.*;
import java.net.*;
import java.io.*;
import javax.swing.*;
import javax.swing.event.*;public class BrowserFrame extends JFrame{

private JMenuBar menuBar;
private JMenu menu,submenu;
private JMenuItem menuItem;
private JCheckBoxMenuItem cbMenuItem;
private JMenuItem menuItemAbout = new JMenuItem();
private JMenuItem menuItemExit = new JMenuItem();
private JMenuItem menuItemSelectAll = new JMenuItem();
private JCheckBoxMenuItem menuItemStandardButtonBar = new JCheckBoxMenuItem();
private JCheckBoxMenuItem menuItemAddressBar = new JCheckBoxMenuItem();
private JMenuItem menuItemReflesh = new JMenuItem();
public MainPanel mypanel = new MainPanel();
public ToolBarPanel mypanel2= new ToolBarPanel();

public BrowserFrame(){
super("MyBrowser");
Container container = getContentPane();
// create menu bar
menuBar = new JMenuBar();
setJMenuBar(menuBar);
//the first menu:file
menu = new JMenu("File");
menu.setMnemonic(KeyEvent.VK_F);
menuBar.add(menu);
//a group of JMenuItems
menuItem = new JMenuItem("About",KeyEvent.VK_A);
menu.add(menuItem);
menuItemAbout = menuItem;
menuItemAbout.addActionListener(
new ActionListener(){//anonymous inner class
public void actionPerformed(ActionEvent event){
JOptionPane.showMessageDialog(BrowserFrame.this,
"this is a simple browser!",
"About",JOptionPane.PLAIN_MESSAGE );
}
}//end inner class
);

menuItem = new JMenuItem("Exit",KeyEvent.VK_E);
menu.add(menuItem);
menuItemExit = menuItem;
menuItemExit.addActionListener(
new ActionListener(){
public void actionPerformed(ActionEvent event){
System.exit(0);
}
}
);
//the second menu:edit
menu = new JMenu("Edit");
menu.setMnemonic(KeyEvent.VK_E);
menuBar.add(menu);
//a group of JMenuItems
menuItem = new JMenuItem("Select All",KeyEvent.VK_S);
menu.add(menuItem);
menuItemSelectAll = menuItem;
menuItemSelectAll.addActionListener(
new ActionListener(){
public void actionPerformed(ActionEvent event){
MainPanel.contentsArea.selectAll();
}
}
);
//the third menu:View
menu = new JMenu("View");
menu.setMnemonic(KeyEvent.VK_V);
menuBar.add(menu);
// a submenu:ToolBar
submenu = new JMenu("ToolBar");
submenu.setMnemonic(KeyEvent.VK_T);
cbMenuItem = new JCheckBoxMenuItem("Standard Button Bar");
cbMenuItem.setMnemonic(KeyEvent.VK_S);
submenu.add(cbMenuItem);
menuItemStandardButtonBar = cbMenuItem;
ItemHandler itemHandler = new ItemHandler();
    menuItemStandardButtonBar.addItemListener(itemHandler);
    cbMenuItem.setSelected(true);// be selected
    
submenu.addSeparator();
cbMenuItem = new JCheckBoxMenuItem("Address Bar");
cbMenuItem.setMnemonic(KeyEvent.VK_A);
submenu.add(cbMenuItem);
menuItemAddressBar = cbMenuItem;
menuItemAddressBar.addItemListener(itemHandler);
cbMenuItem.setSelected(true);// be selected

menu.add(submenu);
//another menuItem of View
menuItem = new JMenuItem("Reflesh");
menuItem.setMnemonic(KeyEvent.VK_R);
menu.add(menuItem);
menuItemReflesh = menuItem;
menuItemReflesh.addActionListener(
new ActionListener(){
public void actionPerformed(ActionEvent event){
//......
}
}
);
menuBar.add(menu);

container.add(mypanel.aPanel,BorderLayout.CENTER);
container.add(mypanel2.anotherPanel,BorderLayout.NORTH);
setSize(800,600);
setVisible(true);
}
private class ItemHandler implements ItemListener{
public void itemStateChanged( ItemEvent e){
//......
}
}
public static void main(String[] args){
BrowserFrame frame = new BrowserFrame();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}

}
异常:
Exception in thread "main" java.lang.NullPointerException
        at java.awt.Container.addImpl(Container.java:1015)
        at java.awt.Container.add(Container.java:899)
        at BrowserFrame.<init>(BrowserFrame.java:110)
        at BrowserFrame.main(BrowserFrame.java:121)
Press any key to continue...
请高手指点啊!