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

假设我有三个类,两个类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);,但是跨类我就不懂了,求大神解答。

人到中年有点甜
浏览 123回答 1
1回答

千万里不及你

可以把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()了!
打开App,查看更多内容
随时随地看视频慕课网APP