我在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个button.so我想在所有按钮的所有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 ??
答案 0 :(得分:3)
看起来你正在寻找ActionEvent#getSource
JButton button = (JButton) evt.getSource();
String buttonText = button.getText();
答案 1 :(得分:1)
如果我理解了这个问题,你想为每个按钮重复使用相同的代码。您应该创建一个继承自ActionListener
的类,并且在setActionPerformed(ActionEvent e)
方法中,您应该使用e.getSource()
来了解哪个按钮已被按下。
您只需将addActionListener(ActionListener)
与此新类的实例一起用作参数。