一个源码,出了三个错误,搞了好长时间搞不错了,帮忙看一下
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.