Java 如何为多个组件创建单个actionlistener函数

Java 如何为多个组件创建单个actionlistener函数,java,swing,actionlistener,Java,Swing,Actionlistener,我的actionlistener中有以下代码。它运行良好 private void setActionPerformed(java.awt.event.ActionEvent evt){ Container ct=button1.getParent(); String panel_name=ct.getName(); String button_val=button1.getText(); textfield1.setText(panel_name+"-"+but

我的actionlistener中有以下代码。它运行良好

private void setActionPerformed(java.awt.event.ActionEvent evt){
    Container ct=button1.getParent();
    String panel_name=ct.getName();
    String button_val=button1.getText();
    textfield1.setText(panel_name+"-"+button_val);
}
但是我有大约50个按钮,所以我想在所有按钮的actionlistener中调用函数(setActionPerformed)。 所以我尝试了以下方法

private void setActionPerformed(java.awt.event.ActionEvent evt){
    Container ct=this.getParent();
    String panel_name=ct.getName();
    String button_val=this.getText();
    textfield1.setText(panel_name+"-"+button_val);
}

但是它不起作用!!任何sgsn???

看起来像是你在找的


看起来你在找我


如果我理解这个问题,您希望对每个按钮重复使用相同的代码。您应该创建一个从
ActionListener
继承的类,并且在
setActionPerformed(ActionEvent e)
方法中,您应该使用
e.getSource()
来知道按下了哪个按钮


您只需使用
addActionListener(ActionListener)
,并将这个新类的实例作为参数。

如果我理解这个问题,您希望对每个按钮重复使用相同的代码。您应该创建一个从
ActionListener
继承的类,并且在
setActionPerformed(ActionEvent e)
方法中,您应该使用
e.getSource()
来知道按下了哪个按钮


您只需使用
addActionListener(ActionListener)
和这个新类的实例作为参数。

它怎么不工作?会发生什么?如果你想让人们花时间阅读你的代码,请格式化你的代码。我们不能这样使用(这个)吗?不,你可能需要将按钮作为参数传递进去。它怎么不起作用?会发生什么?如果你想让人们花时间阅读你的代码,请格式化你的代码。我们不能这样使用(这个)吗?不,你可能需要将按钮作为参数传递很多。。。。问题解决了。但是你能告诉我为什么我们不能直接使用这个。getName getSource的功能是什么?因为
这个
并不是指
JButton
,而是指实现
ActionListener
的任何一个类,正如名字所示
getSource
获取导致
ActionEvent
的源对象.... 问题解决了。但是你能告诉我为什么我们不能直接使用这个。getName getSource的功能是什么?因为
这个
不是指
JButton
,而是指实现
ActionListener
的类,正如其名所示
getSource
获取导致
ActionEvent
的源对象。。。
JButton button = (JButton) evt.getSource();
String buttonText = button.getText();