swing Java:JButton actionListener解释
我对JButton
的工作原理极为困惑。我已经阅读了JButton的oracle文档,但是我没有看到JButton如何添加actionlistener。我真的一直在想,像JFrames这样的东西怎么会有.addMouseListener
之类的东西。有人能解释一下JButton
如何像.addActionListener(...)
语法那样添加actionListener吗
我想知道如何做到这一点的原因是创建我自己的“JButton”,它可以添加一个actionListener,并在需要时触发事件。这可能还是不可能
# 1 楼答案
以下是理解架构所必须做的。首先,这里使用的设计模式是观察者模式-
您可以在here上找到有关实现它的更多信息
但是,如果您的目标是制作自己的JButton,那么最好的方法就是将JButton子类化
你问过
JFrame
怎么会有addMouseListener
——这是因为JFrame
扩展了java.awt.Component
。希望这有帮助编辑
观察者什么都不做。受试者如有任何变化,请通知观察者。这是notify方法
再回到包和桶的例子- 包观察者 桶主题
Bucket连接一个新数据包进入Bucket的数据包。在类中,Bucket类将调用notify方法,所有注册的数据包都将被通知。如果一个数据包希望从Bucket中取消订阅,它只需要调用unsubscribe方法,它就会从Bucket的ArrayList中删除该对象