我有一個類whitch擴展JPanel:確定MouseListener中單擊的JPanel組件。事件處理
public class ButtonPanel extends JPanel {
private label;
public ButtonPanel() {
label=new JLabel("waiting for click");
add(label);
}
public void setButtonText() {
label.setText("just clicked");
}
}
我有被添加到JFrame的那類的幾個實例。我想創建一個MouseAdapter類的實例,然後將它們作爲鼠標監聽器添加到我的JFrame上的所有ButtonPanel組件。我想:
ButtonPanel butt1 = new ButtonPanel();
ButtonPanel butt2 = new ButtonPanel();
ButtonPanel butt3 = new ButtonPanel();
//... here goes code which add ButtonPanels to JFrame
MouseAdapterMod mam = new MouseAdapterMod();
butt1.addMouseListener(mam);
butt2.addMouseListener(mam);
butt3.addMouseListener(mam);
MouseAdapterMod類我想與另一個分開,並找到它自己的包中。它應該是這樣的:
public class MouseAdapterMod extends MouseAdapter {
public void mouseClicked(MouseEvent e) {
//here goes the code of calling setButtonText method of ButtonPanel component on which the event had occurred
}
}
所以問題是,我不知道如何實現的mouseClicked方法,使其確定ButtonPanel生成事件,並調用相應於該部件setButtonText()方法。有誰知道該怎麼做?
我知道我可以通過在ButtonPanel類中包含事件處理功能來實現此目的,但這對我來說不是合適的方式,因爲我想保留上面描述的類結構,並且只有一個MouseAdapterMod類的實例處理所有的ButtonPanel。
榮譽爲您的最後一段。 –