繁体   English   中英

Java:JButton actionListener外植

[英]Java: JButton actionListener explantation

我对JButton如何工作非常困惑。 我已经阅读了JButton的oracle文档,但是我没有看到JButton如何添加actionlistener。 我真的总是想知道.addMouseListener东西以及所有可以像.addMouseListener这样的东西。 任何人都可以解释JButton如何像.addActionListener(...)语法一样添加一个actionListener?

我想知道如何做到这一点的原因是为每个人创建我自己的“JButton”,它可以添加一个actionListener,它会在需要时触发事件。 这甚至可能吗?

以下是您需要了解的架构。 首先,这里使用的设计模式是观察者模式 -

实现发布者/订阅者方案。 我们需要一种机制,允许我们在发布者对象改变状态时通知订阅者对象。

您可以在此处找到有关实施它的更多信息。

但是如果你的目标是创建自己的JButton,那么最好的方法是使用子类JButton。

class MyCustomButton extends JButton{}

您询问了JFrame如何具有addMouseListener - 这是因为JFrame扩展了java.awt.Component 希望这可以帮助。

编辑

观察者没有做任何事情。 如果有任何变化,主体会通知观察员。 这是通知方法。

 public void notify()
      {
        for (int i=0;i < observers.size();i++)
        {
          Observer ob = (Observer)observers.get(i);
          ob.update(newValue);
        }
      }

再回到Packet和Bucket示例 - Packet - Observer Bucket - Subject

用于连接新数据包已进入存储桶的数据包。 在类中,Bucket类将调用notify方法,并且将通知所有已注册的数据包。 如果数据包希望从Bucket中取消订阅,则只需要调用Unsubscribe方法,它将从Bucket的ArrayList中删除Object。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM