有没有办法在java中创建一个方法来获取有关JPanel被点击的内容/信息?

时间:2014-03-07 18:04:03

标签: java swing jpanel mouselistener

例如:有两个面板,每个面板具有不同的名称,但由相同的构造函数构成。用鼠标滑块单击一个。我希望它显示面板中的信息,例如名称。但是,mouselistener位于构造函数中。任何想法或解决方法。在c ++中,我可以将它作为参考传递,但我不知道在Java中做什么。

1 个答案:

答案 0 :(得分:1)

MouseListener的每个方法的MouseEvent都有对被监听组件getSource()方法的引用。使用它,你就会得到你的信息。例如,

@Override
public void mousePressed(MouseEvent mEvt) {
   Component theCurrentPressedComponent = (Component) mEvt.getSource();

   // now you can use your variable above, although you probably need to 
   // cast it to something else, such as a JPanel

   // e.g., if it has been assigned a name String via setName(...)
   System.out.println(theCurrentPressedComponent.getName()); 
}

如果您需要更具体的建议,请考虑创建并发布minimal example program