刚做了一个记事本的java程序!!不知道哪里出错了

ko0lo0 2008-04-19 08:53:36

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

}





...全文
93 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
rypgood 2008-04-20
  • 打赏
  • 举报
回复
妈妈的,各位把lz加为黑名单吧,还无满意答案
ko0lo0 2008-04-19
  • 打赏
  • 举报
回复
我用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);
}
}


rypgood 2008-04-19
  • 打赏
  • 举报
回复
6楼说的是
多写了个大括号

以后发现需要为class\interface之类的基本就是这样的错误了
ludi2008 2008-04-19
  • 打赏
  • 举报
回复
主程序写在了类外。。把main函数前面那个括号去掉。
ko0lo0 2008-04-19
  • 打赏
  • 举报
回复
为什么编译出现上面的错误??
qiyousyc 2008-04-19
  • 打赏
  • 举报
回复
编译了,没有发现错误。
ko0lo0 2008-04-19
  • 打赏
  • 举报
回复
大河V5 2008-04-19
  • 打赏
  • 举报
回复
什么错误啊?
就这一个文件?这个文件编译就有错误啊
qiongshan0475 2008-04-19
  • 打赏
  • 举报
回复
把出错的提示贴出来

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧