一个源码,出了三个错误,搞了好长时间搞不错了,帮忙看一下

j4sxw 2003-08-19 12:21:40
import java.awt.*;
import java.awt.event.*;
import javax.swing.JMenu;
import javax.swing.JMenuItem;
import javax.swing.JCheckBoxMenuItem;
import javax.swing.JRadioButtonMenuItem;
import javax.swing.ButtonGroup;
import javax.swing.JMenuBar;
import javax.swing.ImageIcon;
import javax.swing.JTextArea;
import javax.swing.JScrollPane;
import javax.swing.JFrame;
import javax.swing.JPopupMenu;
import javax.swing.JApplet;
import javax.swing.event.*;
//------------------------------------------------------------------------------
public class MenuDemo extends JApplet
{
JTextArea output;
JScrollPane scrollPane;
String newline="\n";
JPopupMenu popup;
public void init()
{
JMenuBar menuBar;
JMenu menu,submenu;
JMenuItem menuItem;
JRadioButtonMenuItem rbMenuItem;
JCheckBoxMenuItem cbMenuItem;
//增加WINDOWS事件处理,用来推出程序
Container contentPane=getContentPane();
output=new JTextArea(5,35);
output.setEditable(false);
scrollPane=new JScrollPane(output);
contentPane.add(scrollPane,BorderLayout.CENTER);
//创建菜单条
menuBar=new JMenuBar();
setJMenuBar(menuBar);
//创建第一个菜单
menu=new JMenu("MENU1");
menuBar.add(menu);
//一组菜单
menuItem=new JMenuItem("A text-only menu item");
menuItem.addActionListener(new MenuActionListener());
menu.add(menuItem);
menuItem=new JMenuItem("Both text and icon",new ImageIcon("Ms.jpg"));
menuItem.addActionListener(new MenuActionListener());
menu.add(menuItem);
menuItem=new JMenuItem(new ImageIcon("Ms.jpg"));
menuItem.addActionListener(new MenuActionListener());
menu.add(menuItem);
//一组radio button菜单项
menu.addSeparator();
ButtonGroup group=new ButtonGroup();
rbMenuItem=new JRadioButtonMenuItem("A radio button menu item");
rbMenuItem.setSelected(true);
group.add(rbMenuItem);
rbMenuItem.addActionListener(new MenuActionListener());
menu.add(rbMenuItem);
rbMenuItem=new JRadioButtonMenuItem("Another one");
group.add(rbMenuItem);
rbMenuItem.addActionListener(new MenuActionListener());
menu.add(rbMenuItem);
//一组check box 菜单项
menu.addSeparator();
cbMenuItem=new JCheckBoxMenuItem("A check box menu item");
cbMenuItem.addActionListener(new MenuItemListener());
menu.add(cbMenuItem);
//一个子菜单
menu.addSeparator();
submenu=new JMenu("A submenu");
menuItem=new JMenuItem("An item in the submenu");
menuItem.addActionListener(new MenuActionListener());
submenu.add(menuItem);
menuItem=new JMenuItem("Another item");
menuItem.addActionListener(new MenuActionListener());
submenu.add(menuItem);
menu.add(submenu);
//添加第二个菜单
menu=new JMenu("MENU 2");
menuBar.add(menu);
popup=new JPopupMenu();
menuItem=new JMenuItem("A popup menu item");
menuItem.addActionListener(new MenuActionListener());
popup.add(menuItem);
menuItem=new JMenuItem("Anther popup item");
menuItem.addActionListener(new MenuActionListener());
popup.add(menuItem);
menuItem=new JMenuItem("Anther ");
menuItem.addActionListener(new MenuActionListener());
popup.add(menuItem);
//为该组件添加一个处理弹出菜单的事件接收器
MouseListener popupListener=new PopupListener();
output.addMouseListener(popupListener);
scrollPane.addMouseListener(popupListener);
menuBar.addMouseListener(popupListener);
}
//------------------------------------------------------------------------------
class PopupListener extends MouseAdapter
{
public void mousePressed(MouseEvent e)
{
maybeShowPopup(e);
}
public void mouseReleased(MouseEvent e)
{
maybeShowPopup(e);
}
private void maybeShowPopup(MouseEvent e)
{
if(e.isPopupTrigger())
{
popup.show(e.getComponent(),e.getX(),e.getY());
}
}
}

//------------------------------------------------------------------------------
class MenuActionListener implements ActionListener
{
public void actionPerformed(ActionEvent e)
{
JMenuItem source=(JMenuItem)(e.getSource());
String s="Action event detected."
+newline
+" Event source:"+source.getText()
+"(an instance of "+ getClassName(source) +")";
output.append(s+newline);
}
}
//------------------------------------------------------------------------------
protected String getClassName(Object o)
{
String classString=o.getClass().getName();
int dotIndex=classString.lastIndexOf(".");
return classString.substring(dotIndex+1);
}
//------------------------------------------------------------------------------
public static void main(String[] args)
{
MenuDemo applet=new MenuDemo();
Frame aFrame=new Frame("MenuDemo");
aFrame.addWindowListener(
new WindowAdapter()
{
public void windowClosing(WindowEvent e)
{
System.exit(0);
}
});
aFrame.add(applet,BorderLayout.CENTER);
aFrame.setSize(400,300);
applet.init();
applet.start();
aFrame.setVisible(true);
}
//------------------------------------------------------------------------------
class MenuItemListener implements ItemListener
{
public void itemStateChange(ItemEvent e)
{
JMenuItem source=(JMenuItem)(e.getSource());
String s="Item event detected.";
+newline
+" Event source:"+source.getText()
+"(an instance of "+ getClassName(source) +")"
+newline
+((e.getStateChange()==ItemEvent.SELECTED)?"selected":"unselected");
output.append(s+newline);
}
}
}

//------------------------------------------------------------------------------
--------------------Configuration: JDK version 1.4 <Default>--------------------
E:\javacode\gui\MenuDemo.java:168: not a statement
+((e.getStateChange()==ItemEvent.SELECTED)?"selected":"unselected");
^
E:\javacode\gui\MenuDemo.java:67: addActionListener(java.awt.event.ActionListener) in javax.swing.AbstractButton cannot be applied to (MenuDemo.MenuItemListener)
cbMenuItem.addActionListener(new MenuItemListener());
^
E:\javacode\gui\MenuDemo.java:158: MenuDemo.MenuItemListener should be declared abstract; it does not define itemStateChanged(java.awt.event.ItemEvent) in MenuDemo.MenuItemListener
class MenuItemListener implements ItemListener
^
3 errors

Process completed.

...全文
25 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
chlei 2003-08-19
  • 打赏
  • 举报
回复
需要重载接口中的方法
shine333 2003-08-19
  • 打赏
  • 举报
回复
error 2

class MenuItemListener implements ActionListener
{
public void actionPerformed(ActionEvent e)
{
JMenuItem source=(JMenuItem)(e.getSource());
realfishhook 2003-08-19
  • 打赏
  • 举报
回复
.add addItemListener(ItemListener i)

j4sxw 2003-08-19
  • 打赏
  • 举报
回复
错误2该如何解决.
hesi726 2003-08-19
  • 打赏
  • 举报
回复
错误1.
前面定义的 String s="Item event detected.";
后面多了一个 ";" 号!


错误2.
AbstractButton.addActionListener 不能增加 MenuItemListener的监听器!
自己看看api吧!
错误3.
MenuItemListener 没有实现 itemStateChanged(java.awt.event.ItemEvent) 方法!
你的实现是: public void itemStateChange(ItemEvent e)少了个d



62,614

社区成员

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

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