import java.awt.Container;
import java.awt.event.ActionEvent;
import java.awt.event.InputEvent;
import java.awt.event.KeyEvent;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import javax.swing.AbstractAction;
import javax.swing.Action;
import javax.swing.ButtonGroup;
import javax.swing.JCheckBoxMenuItem;
import javax.swing.JFrame;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JPanel;
import javax.swing.JPopupMenu;
import javax.swing.JRadioButtonMenuItem;
import javax.swing.JTextField;
import javax.swing.JToolBar;
import javax.swing.KeyStroke;
public class MenuUseDemo extends JFrame
{
public static final int WIDTH=250;
public static final int Height=200;
private JMenuItem newItem;
private JMenuItem openItem;
private JMenuItem closeItem;
private JMenuItem saveItem;
private JMenuItem cutItem;
private JMenuItem copyItem;
private JMenuItem pasteItem;
private JMenuItem cutItemPop;
private JMenuItem copyItemPop;
private JMenuItem pasteItemPop;
private JRadioButtonMenuItem forwardItem;
private JRadioButtonMenuItem backwardItem;
private JPopupMenu popup;
private JTextField MyTextField;
public MenuUseDemo()
{
setTitle("hello");
setSize(WIDTH,HEIGHT);
Container contentPane=getContentPane();
JPanel textPane1=new JPanel(); myTextField=new JTextField("",20);
textPanel.add(myTextField);
contentPane.add(textPanel); JMenuBar menuBar=new JMenuBar();
setJMenuBar(menuBar);
JMenu fileMenu=new JMenu("文件");
fileMenu.setMnemonic('F'); newItem=fileMenu.add(new ShowAction("新建"));
newItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_N,InputEvent.CTRL_MASK)); openItem=fileMenu.add(new ShowAction("打开"));
openItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_O,InputEvent.CTRL_MASK));
        fileMenu.addSeparator();
saveItem=fileMenu.add(new ShowAction("保存"));
saveItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_S,InputEvent.CTRL_MASK));
        saveItem.setEnabled(false); closeItem=fileMenu.add(new ShowAction("退出"));
closeItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_L,InputEvent.CTRL_MASK));
        closeItem.setEnabled(false);
fileMenu.addSeparator(); JMenuItem exitItem=new JMenuItem("退出",'T');
exitItem.addActionListener(new AbstactAction("退出")
{
public void actionPerformed(ActionEvent event)
{
System.exit(0); }
}); exitItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_T,InputEvent.CTRL_MASK));
fileMenu.add(exitItem);
JMenu editMenu=new JMenu("编辑");
editMenu.setMnemonic('E'); cutItem=new JMenu("剪切",'C');
        editMenu.add(cutMenu); cutItem.addActionListener(new ShowAction("剪切"));
cutItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_U,InputEvent.CTRL_MASK));
        cutItem.setEnabled(false); copyItem=new JMenu("复制",'Y');
copyItem.addActionListener(new ShowAction("复制"));
copyItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_Y,InputEvent.CTRL_MASK));
        copyItem.setEnabled(false); copyItem=new JMenu("粘贴",'P');
copyItem.addActionListener(new ShowAction("粘贴"));
copyItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_P,InputEvent.CTRL_MASK));
        copyItem.setEnabled(false); editMenu.add(copyItem);
eidtMenu.add(PasteItem); JMenu searchMenu= new JMenu("搜索");
searchMenu.setMnemonic('S'); ButtonGroup group=new ButtonGroup();
forwardItem=new JRadioButtonMenuItem("Forward");
        forwardItem.addActionListener(new ShowAction("Forward"));
forwardItem.setSelected(true);
forwardItem.setEnabled(false); backwardItem=new JRadioButtonMenuItem("Backward");
        backwardItem.addActionListener(new ShowAction("Backward"));
        backwardItem.setEnabled(false); group.add(forwardItem);
group.add(backwardItem); searchMenu.add(forwardItem);
searchMenu.add(backwardItem); JMenu viewMenu=new JMenu("视图");
viewMenu.setMnemonic('V');        JMenu optionMenu=new JMenu("选项");
        optionMenu.setMnemonic('O'); JCheckBoxMenuItem toolItem=new JCheckBoxMenuItem("ToolBar");
JCheckBoxMenuItem statusItem=new JCheckBoxMenuItem("Status");
toolItem.addActionListener(new ShowAction("ToolBar"));
statusItem.addActionListener(new ShowAction("Status")); optionMenu.add(toolItem);
optionMenu.add(statusItem); viewMenu.add(optionMenu); menuBar.add(fileMenu);
menuBar.add(editMenu);
menuBar.add(searchMenu);
        menuBar.add(viewMenu); popup=new JPopupMenu(); cutItemPop=new JMenuItem("剪切",'C');
cutItemPop.addActionListener(new ShowAction("CutPop"));
        cutItemPop.setEnabled(false);
copyItemPop=new JMenuItem("复制",'Y');
copyItemPop.addActionListener(new ShowAction("CopyPop"));
        copyItemPop.setEnabled(false); pasteItemPop=new JMenuItem("粘贴",'P');
pasteItemPop.addActionListener(new ShowAction("PastePop"));
        pasteItemPop.setEnabled(false); popup.add(cutItemPop);
popup.add(copyItemPop);
popup.add(pasteItemPop);
getContentPane().addMouseListener(new MouseAdapter()
{
public void mouseReleased(MouseEvent event)
{
if(event.isPopupTrigger())
popup.show(event.getComPonent(),event.getX(),event.getY());
}
});
} private class ShowAction extends AbstractAction
{
public ShowAction(String name)
{
super(name);
}
}
    public void actionPerformed(ActionEvent event)
{
if(event.getSoure()==newItem||event.getSoure()==openItem)
{
         saveItem.setEnabled(true);
         closeItem.setEnabled(true);
 cutItem.setEnabled(true);
 copyItem.setEnabled(true);
 pasteItem.setEnabled(true);
 forwardItem.setEnabled(true);
 backwardItem.setEnabled(true);
 cutItemPop.setEnabled(true);
 copyItemPop.setEnabled(true);
 pasteItemPop.setEnabled(true);
}
if(event.getSoure()==closeItem)
{
 saveItem.setEnabled(false);
         closeItem.setEnabled(false);
 cutItem.setEnabled(false);
 copyItem.setEnabled(false);
 pasteItem.setEnabled(false);
 forwardItem.setEnabled(false);
 backwardItem.setEnabled(false);
 cutItemPop.setEnabled(false);
 copyItemPop.setEnabled(false);
 pasteItemPop.setEnabled(false);
}
    myTextField.setText(getValue(Action.NAME)+"selected.");
}
}
public static void main(String[] args)
{
MenuUseDemo frame=new MenuUseDemo();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setVisible(true);
}}

解决方案 »

  1.   

    主程序写在了类外。。把main函数前面那个括号去掉。
      

  2.   

    6楼说的是
    多写了个大括号以后发现需要为class\interface之类的基本就是这样的错误了
      

  3.   

    我用Eclipse改了下,编译可以通过,但是运行出错了
    import java.awt.Container;
    import java.awt.event.ActionEvent;
    import java.awt.event.InputEvent;
    import java.awt.event.KeyEvent;
    import java.awt.event.MouseAdapter;
    import java.awt.event.MouseEvent;
    import javax.swing.AbstractAction;
    import javax.swing.Action;
    import javax.swing.ButtonGroup;
    import javax.swing.JCheckBoxMenuItem;
    import javax.swing.JFrame;
    import javax.swing.JMenu;
    import javax.swing.JMenuBar;
    import javax.swing.JMenuItem;
    import javax.swing.JPanel;
    import javax.swing.JPopupMenu;
    import javax.swing.JRadioButtonMenuItem;
    import javax.swing.JTextField;
    import javax.swing.KeyStroke;
    public class MenuUseDemo extends JFrame
    {
    public static final int WIDTH=250;
    public static final int Height=200;
    private JMenuItem newItem;
    private JMenuItem openItem;
    private JMenuItem closeItem;
    private JMenuItem saveItem;
    private JMenuItem cutItem;
    private JMenuItem copyItem;
    private JMenuItem pasteItem;
    private JMenuItem cutItemPop;
    private JMenuItem copyItemPop;
    private JMenuItem pasteItemPop;
    private JRadioButtonMenuItem forwardItem;
    private JRadioButtonMenuItem backwardItem;
    private JPopupMenu popup;
    private JTextField myTextField;
    public MenuUseDemo()
    {
    setTitle("hello");
    setSize(WIDTH,HEIGHT);
    Container contentPane=getContentPane();
    JPanel textPanel=new JPanel(); myTextField=new JTextField("",20);
    textPanel.add(myTextField);
    contentPane.add(textPanel); JMenuBar menuBar=new JMenuBar();
    setJMenuBar(menuBar);
    JMenu fileMenu=new JMenu("文件");
    fileMenu.setMnemonic('F'); newItem=fileMenu.add(new ShowAction("新建"));
    newItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_N,InputEvent.CTRL_MASK)); openItem=fileMenu.add(new ShowAction("打开"));
    openItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_O,InputEvent.CTRL_MASK));
            fileMenu.addSeparator();
    saveItem=fileMenu.add(new ShowAction("保存"));
    saveItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_S,InputEvent.CTRL_MASK));
            saveItem.setEnabled(false); closeItem=fileMenu.add(new ShowAction("退出"));
    closeItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_L,InputEvent.CTRL_MASK));
            closeItem.setEnabled(false);
    fileMenu.addSeparator(); JMenuItem exitItem=new JMenuItem("exit",'T');
    exitItem.addActionListener(new AbstractAction("exit")
    {
    public void actionPerformed(ActionEvent event)
    {
    System.exit(0); }
    }); exitItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_T,InputEvent.CTRL_MASK));
    fileMenu.add(exitItem);
    JMenu editMenu=new JMenu("编辑");
    editMenu.setMnemonic('E'); cutItem=new JMenuItem("剪切",'C');
            editMenu.add(cutItem); cutItem.addActionListener(new ShowAction("剪切"));
    cutItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_U,InputEvent.CTRL_MASK));
            cutItem.setEnabled(false); copyItem=new JMenuItem("复制",'Y');
    copyItem.addActionListener(new ShowAction("复制"));
    copyItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_Y,InputEvent.CTRL_MASK));
            copyItem.setEnabled(false); copyItem=new JMenuItem("粘贴",'P');
    copyItem.addActionListener(new ShowAction("粘贴"));
    copyItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_P,InputEvent.CTRL_MASK));
            copyItem.setEnabled(false); editMenu.add(copyItem);
    editMenu.add(pasteItem); JMenu searchMenu= new JMenu("搜索");
    searchMenu.setMnemonic('S'); ButtonGroup group=new ButtonGroup();
    forwardItem=new JRadioButtonMenuItem("Forward");
            forwardItem.addActionListener(new ShowAction("Forward"));
    forwardItem.setSelected(true);
    forwardItem.setEnabled(false); backwardItem=new JRadioButtonMenuItem("Backward");
            backwardItem.addActionListener(new ShowAction("Backward"));
            backwardItem.setEnabled(false); group.add(forwardItem);
    group.add(backwardItem); searchMenu.add(forwardItem);
    searchMenu.add(backwardItem); JMenu viewMenu=new JMenu("视图");
    viewMenu.setMnemonic('V');        JMenu optionMenu=new JMenu("选项");
            optionMenu.setMnemonic('O'); JCheckBoxMenuItem toolItem=new JCheckBoxMenuItem("ToolBar");
    JCheckBoxMenuItem statusItem=new JCheckBoxMenuItem("Status");
    toolItem.addActionListener(new ShowAction("ToolBar"));
    statusItem.addActionListener(new ShowAction("Status")); optionMenu.add(toolItem);
    optionMenu.add(statusItem); viewMenu.add(optionMenu); menuBar.add(fileMenu);
    menuBar.add(editMenu);
    menuBar.add(searchMenu);
            menuBar.add(viewMenu); popup=new JPopupMenu(); cutItemPop=new JMenuItem("剪切",'C');
    cutItemPop.addActionListener(new ShowAction("CutPop"));
            cutItemPop.setEnabled(false);
    copyItemPop=new JMenuItem("复制",'Y');
    copyItemPop.addActionListener(new ShowAction("CopyPop"));
            copyItemPop.setEnabled(false); pasteItemPop=new JMenuItem("粘贴",'P');
    pasteItemPop.addActionListener(new ShowAction("PastePop"));
            pasteItemPop.setEnabled(false); popup.add(cutItemPop);
    popup.add(copyItemPop);
    popup.add(pasteItemPop);
    getContentPane().addMouseListener(new MouseAdapter()
    {
    public void mouseReleased(MouseEvent event)
    {
    if(event.isPopupTrigger())
    popup.show(event.getComponent(),event.getX(),event.getY());
    }
    });
    } private class ShowAction extends AbstractAction
    {
    public ShowAction(String name)
    {
    super(name);
    }    public void actionPerformed(ActionEvent event)
    {
    if(event.getSource()==newItem||event.getSource()==openItem)
    {
             saveItem.setEnabled(true);
             closeItem.setEnabled(true);
     cutItem.setEnabled(true);
     copyItem.setEnabled(true);
     pasteItem.setEnabled(true);
     forwardItem.setEnabled(true);
     backwardItem.setEnabled(true);
     cutItemPop.setEnabled(true);
     copyItemPop.setEnabled(true);
     pasteItemPop.setEnabled(true);
    }
    if(event.getSource()==closeItem)
    {
     saveItem.setEnabled(false);
             closeItem.setEnabled(false);
     cutItem.setEnabled(false);
     copyItem.setEnabled(false);
     pasteItem.setEnabled(false);
     forwardItem.setEnabled(false);
     backwardItem.setEnabled(false);
     cutItemPop.setEnabled(false);
     copyItemPop.setEnabled(false);
     pasteItemPop.setEnabled(false);
    }
        myTextField.setText(getValue(Action.NAME)+"selected.");
    }
    }
    public static void main(String[] args)
    {
    MenuUseDemo frame=new MenuUseDemo();
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    frame.setVisible(true);
    }
    }