为了账号安全,请及时绑定邮箱和手机立即绑定

请问该如何在C类中监听A和B中按钮的事件,实现C类中卡片布局翻面?

请问该如何在C类中监听A和B中按钮的事件,实现C类中卡片布局翻面?

人到中年有点甜 2022-05-27 11:07:57
假设我有三个类,两个类A和B分别继承了JPanel,A和B在构造函数里都add了一个按钮,分别为JBa和JBb,最后一个类C继承了JFrame,在类C的构造方法中,我new了A和B,把A和B添加进卡片布局。如何在C类中监听A和B中按钮的事件,实现C类中卡片布局翻面?如果不在A和B构造方法里add按钮,而是在C类中 new A B的时候再把按钮加进去,这样监听按钮事件好写,因为都在C类中,可以用JBa .addActionListener(this);,但是跨类我就不懂了,求大神解答。
查看完整描述

1 回答

?
千万里不及你

TA贡献1784条经验 获得超9个赞

可以把JBa .addActionListener(this);这句改成其他的:
比如:JBa .addActionListener(A,B类的某个成员字段);
我的意思是,按钮就在A,B、中定义,然后在A类中(B类类似不再重复)的构造函数中new出来并注册时间监听,那么问题来了,谁来监听?建议构造函数这样写:
public A(ActionListener lst){
this.按钮=new Button()//等实例操作,把按钮的所有属性设置好后-->
this.按钮.setActionListener(lst);//把传入的参数设为监听的对象
}
新的问题就是,需要在C类中new A时,就把自己(建议把自己)实现ActionLIstener,然后传入参数就是自己(this):A a =new A(this);
大概是这样,如果要把按钮分离出来,就可以考虑直接new Jpanel()再对象.add()了!

查看完整回答
反对 回复 2022-05-30
  • 1 回答
  • 0 关注
  • 122 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号