我有一个类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。
荣誉为您的最后一段。 –