Java:在单独的JPanel组件中处理组件上的事件

Java:在单独的JPanel组件中处理组件上的事件,java,events,jframe,jpanel,handler,Java,Events,Jframe,Jpanel,Handler,所以我有一个JFrame,我添加了一个定制的JPanel组件 JPanel组件有一个按钮,我想在JFrame中将侦听器附加到该按钮 最好的方法是什么?除非我读错了,否则当您自己添加了JPanel时,您可以在按钮上添加一个actionlistener JButton.addActionListener(... some listener); 还是你在问别的问题?e、 g.如果定制JPanel不是由您开发的。然后,在这种情况下,查看面板是否公开API以向其按钮添加侦听器,如果没有,则最后一个选项是

所以我有一个JFrame,我添加了一个定制的JPanel组件

JPanel组件有一个按钮,我想在JFrame中将侦听器附加到该按钮


最好的方法是什么?

除非我读错了,否则当您自己添加了JPanel时,您可以在按钮上添加一个actionlistener

JButton.addActionListener(... some listener);
还是你在问别的问题?e、 g.如果定制JPanel不是由您开发的。然后,在这种情况下,查看面板是否公开API以向其按钮添加侦听器,如果没有,则最后一个选项是迭代其子项以查找JButton:

Component[] comp = customPanel.getComponents();
for(Component c: comp) {
  if(c is a button i am interested in) {
    c.addActionListener(new ActionListener() {
       public void actionPerformed(ActionEvent e) {
           // implement the logic of what happens when button is clicked!
       }
    });
  }
}

如何实现动作侦听器的API?(我也是JPanel组件的开发人员)