有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java我可以从其他类方法执行ActionListener方法actionPerformed吗?

我有

ActionListener actionListenerRing = new ActionListener() {
              public void actionPerformed(ActionEvent actionEvent) {

在我的类构造函数中定义。如何从main方法调用actionPerformed方法

我只是想知道我是否可以从类的任何其他部分直接调用action listener,或者我应该将action listener的代码移动到其他方法,以便ActioListener和其他类方法都可以访问


共 (2) 个答案

  1. # 1 楼答案

    使actionListenerRing成为static(类)变量(假设main在同一个类中)而不是本地到构造函数,那么它将可以从main访问,并且您可以将actionPerformed方法调用为actionListenerRing.actionPerformed

    但我认为手动调用该方法不是一个好主意

  2. # 2 楼答案

    通常,如果不将侦听器附加到某个对象,就不会创建侦听器。因此,如果您的main方法必须直接调用这样的ActionListener,那么您的设计可能有问题。也许你可以评论一下你想要达到的目标

    您可能希望读取whole observer design pattern,但简而言之,如果希望在另一个对象执行操作时得到通知,您可以将侦听器添加到另一个对象。例如:

    JButton button;//a button I obtained from somewhere and in 
    // which I am interested
    button.addActionListener( new ActionListener(){ 
      public void actionPerformed( ActionEvent actionEvent ){
         //do something with the fact that the button has been pressed
      }
    });
    

    在上面的示例中,当按下按钮时,它将通知我添加的ActionListener,我可以通过在actionPerformed方法中放置相关代码来对此作出反应。但我不会亲自给我的听众打电话