我在Java類它得到具有這樣的功能觸發一個動作偵聽器(如下所示):java的多個對象作爲參數爲函數
// action event fired when hitting a checkbox
public void fireActionCheckBox(MyMainClass frame, JCheckBox theButtonExample) {
for(ActionListener a: theButtonExample.getActionListeners()) {
a.actionPerformed(new ActionEvent(this, ActionEvent.ACTION_PERFORMED, null) {
//Nothing need go here, the actionPerformed method (with the
//above arguments) will trigger the respective listener
});
}
}
然後我具有不相同爲一個第二功能JButton的動作偵聽器:
// action event fired when hitting a button
public void fireActionButton(MyMainClass frame, JButton theButtonExample) {
for(ActionListener a: theButtonExample.getActionListeners()) {
a.actionPerformed(new ActionEvent(this, ActionEvent.ACTION_PERFORMED, null) {
//Nothing need go here, the actionPerformed method (with the
//above arguments) will trigger the respective listener
});
}
}
據我所知,在Java開始前的參數必須指定,但它似乎沒有效率的兩次寫相同的代碼。有沒有更好的方法來做到這一點,他們會允許我不寫兩個功能來執行類似的操作。
謝謝你的幫助!
提示:是否有共同的父類een'JButton'和'JCheckBox'? –
也許你可以在一個單獨的類中使用for循環作爲方法,然後在這兩個地方調用 – wylasr
@Joe C - yes'JComponent'是'JButton'和'JCheckBox'的父類,但我無法使用'.getActionListeners()'帶有'JComponent' – JFreeman