The method addActionListener(ActionListener) in the type AbstractButton is not applicable for the ar

来源:互联网 发布:淘宝美工教学视频 编辑:程序博客网 时间:2024/04/29 08:37

package PopupFrame;


import java.awt.Color;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;


import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;


import javax.swing.ButtonGroup;
import javax.swing.JFrame;
import javax.swing.JPopupMenu;
import javax.swing.JRadioButtonMenuItem;


public class PopupFrame   extends  JFrame
{
private  JRadioButtonMenuItem[]  item;
private  ButtonGroup  buttongroup;
private  JPopupMenu  popupmenu;
private  final  Color[]  color={Color.BLUE,Color.YELLOW,Color.RED};
public  PopupFrame()
{
super("Using  JPopupMenus");
ItemHandler  handler=new  ItemHandler();
String[]  colors={"Blue","Yellow","Red"};
item=new  JRadioButtonMenuItem[colors.length];
buttongroup=new  ButtonGroup();
popupmenu=new  JPopupMenu();
for(int  count=0;count<item.length;count++)
{
item[count]=new  JRadioButtonMenuItem(colors[count]);
popupmenu.add(item[count]);
buttongroup.add(item[count]);
item[count].addActionListener(handler);
}
setBackground(Color.WHITE);
addMouseListener(
new  MouseAdapter()
{
public  void  mousePressed(MouseEvent  e)
{
checkForTriggerEvent(e);
}
public  void  mouseReleased(MouseEvent  e)
{
checkForTriggerEvent(e);
}
private  void  checkForTriggerEvent(MouseEvent e)
{
if(e.isPopupTrigger())
{
popupmenu.show(e.getComponent(),e.getX(), e.getY());
}
}
}
);

}
private  class  ItemHandler    
{
public  void  actionPerformed(ActionEvent e)
{
for(int i=0;i<item.length;i++)
{
if(e.getSource()==item[i])
{
getContentPane().setBackground(color[i]);
return;
}
}
}
}
}

代码如上,但是那是错误代码,出现这个错误的原因是没有在ItemHandler中实现ActionListener接口,在这个方法后面加上implements  ActionListener就可以正常运行了

 

0 0