在GridLayout中获取JPanel的位置/索引?

时间:2011-01-13 16:09:46

标签: java model-view-controller swing mouseevent grid-layout

我正在尝试按照MVC设计并且当前在我的Controller类中创建一个MouseAdapter。我有一个与我的一个模型类中的GridLayout大小相同的数组。 因此,当有人在网格中的某处单击JPanel时,我会使用MouseAdapter来通知模型并执行某些操作。 JPanels在另一个类View中。

但是为此,我需要特定JPanel的索引/位置,是否有某种方法可以获得它?

我检查了MouseEvent的GetX和GetY方法,状态为:

GetX - 返回事件相对于源组件的水平x位置。

获取Y - 返回事件相对于源组件的垂直y位置。

相对于源组件,这是否意味着JPanel的左上角是0,0?那么我怎么知道GridLayout中哪些面板被点击了?

2 个答案:

答案 0 :(得分:1)

将您需要的信息放在您添加到组件的鼠标侦听器中。在设置中执行此操作比使用映射和查找更容易。

答案 1 :(得分:0)

您可以在视图类中构建一个Map并创建一个方法

public void getJPanelPos(JPanel panel) 

检索tyhe事件的JPanel源的位置