java程序运行错误

packagetextPackage;importjava.awt.Button;importjava.awt.Dialog;importjava.awt.FlowLay... package textPackage;
import java.awt.Button;
import java.awt.Dialog;
import java.awt.FlowLayout;
import java.awt.Frame;
import java.awt.JobAttributes.DialogType;
import java.awt.Label;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.ComponentListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
public class AppletTest3 extends Frame implements ActionListener
{
static Frame frm = new Frame();
static Label welcome = new Label("请关闭对话框");
static Dialog dlg = new Dialog(frm);
static Button Close_btn = new Button("关闭");
static Button Cancel_btn = new Button("取消");
static WinLis wlis = new WinLis();
public static void main (String args[])
{
frm.setTitle("Dialog");
frm.setSize(200,150);
frm.setLocation(200, 200);
welcome.setAlignment(Label.CENTER);
dlg.setTitle("你确定要关闭?");
dlg.setSize(160, 120);
dlg.setLayout(new FlowLayout(FlowLayout.CENTER,5,30));
dlg.add(Close_btn);
dlg.add(Cancel_btn);
Close_btn.addActionListener((ActionListener) frm);
Cancel_btn.addActionListener((ActionListener) frm);
frm.addWindowListener(wlis);
frm.setVisible(true);
}
static class WinLis extends WindowAdapter
{
public void windowClosing(WindowEvent e)
{
dlg.setLocation(230, 200);
dlg.show();
}
}
public void actionPerformed(ActionEvent e)
{
Button btn = (Button)e.getSource();
if(btn == Close_btn)
{
dlg.dispose();
frm.dispose();
}
else if(btn == Cancel_btn);
dlg.hide();
}
}

编译没问题,运行出现如下问题:
Exception in thread "main" java.lang.ClassCastException: java.awt.Dialog cannot be cast to java.awt.event.ActionListener
at textPackage.AppletTest3.main(AppletTest3.java:38)

38,39行为:
Close_btn.addActionListener((ActionListener) frm);
Cancel_btn.addActionListener((ActionListener) frm);
展开
 我来答
月光雪松
2012-07-20 · TA获得超过476个赞
知道小有建树答主
回答量:338
采纳率:100%
帮助的人:241万
展开全部
很显然
Frame frm = new Frame();

说明frm是一个Frame的对象,Frame并没有实现ActionListener 这个接口,或者有继承它。那么你把它强制转换为ActionListener当然报错。相当于把石头当着馒头啃,当然就不对啦!因为石头不是馒头。
xianweisi
2012-07-20 · 超过25用户采纳过TA的回答
知道答主
回答量:171
采纳率:0%
帮助的人:66.8万
展开全部
ClassCastException类型转换异常。Dialog怎么能转换成ActionListener呢?印象中监听器是需要自己实现的吧。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
FinnLei
2012-07-20 · TA获得超过388个赞
知道小有建树答主
回答量:358
采纳率:0%
帮助的人:233万
展开全部
一句话:你的frm不是ActionListener类型的,不能转换
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
Y2J986
2012-07-21
知道答主
回答量:18
采纳率:0%
帮助的人:16.6万
展开全部
额,你frm是个Frame类型,你咋转ACtionListener呢,都完全没道理的。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式