Java 如何为多个组件创建单个actionlistener函数
我的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
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();