Java-Java “将this强制转换为ActionListener”的意义

发布于 2017-06-17 08:12:45 字数 2184 浏览 1236 评论 1

我在为我的black菜单单选按钮加载监听器(这个语句在结尾处)是发生了错误提示“类型 AbstractButton 中的方法 addActionListener(ActionListener)对于参数(MyMenuFrame)不适用”,然后快速修正那里就有了“将this强制转换为ActionListener”。为什么呢????
以下为详细编码package 第6章;

import java.awt.event.ActionListener;

import javax.swing.JFrame;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JRadioButtonMenuItem;
public class Try {
public static void main(String[] args) {
MyMenuFrame frame=new MyMenuFrame();


}
}
class MyMenuFrame extends JFrame {
MyMenuFrame(){
this.setSize(400,300);
JMenuBar menuBar = new JMenuBar();
this.setJMenuBar(menuBar);
JMenu fileMenu = new JMenu("File");
JMenu fromatMenu = new JMenu("Fromat");
menuBar.add(fileMenu);
menuBar.add(fromatMenu);
JMenu colorItem = new JMenu("color");
JMenu fontItem = new JMenu("font");
fromatMenu.add(colorItem);
fromatMenu.add(fontItem);
JRadioButtonMenuItem black =new JRadioButtonMenuItem("Black");
JRadioButtonMenuItem blue =new JRadioButtonMenuItem("Blue");
JRadioButtonMenuItem red =new JRadioButtonMenuItem("Red");
JRadioButtonMenuItem green =new JRadioButtonMenuItem ("Green");
JRadioButtonMenuItem plain = new JRadioButtonMenuItem("Plain");
JRadioButtonMenuItem blod =new JRadioButtonMenuItem("Bold");
JRadioButtonMenuItem italic =new JRadioButtonMenuItem("Italic");

colorItem.add(black );
colorItem.add(blue) ;
colorItem.add(red );
colorItem.add(green);
fontItem.add(plain);//常规
fontItem.add(blod);//加粗
black.addActionListener(( this );

this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setVisible(true);}

}

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

想挽留 2017-08-25 09:49:59

这个IDE的提示而已,不够准确
实际上,你真的强制转换后,也会报错的。

应该让this实现ActionListener接口

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文