我正在尝试按照MVC设计并且当前在我的Controller类中创建一个MouseAdapter。我有一个与我的一个模型类中的GridLayout大小相同的数组。 因此,当有人在网格中的某处单击JPanel时,我会使用MouseAdapter来通知模型并执行某些操作。 JPanels在另一个类View中。
但是为此,我需要特定JPanel的索引/位置,是否有某种方法可以获得它?
我检查了MouseEvent的GetX和GetY方法,状态为:
GetX - 返回事件相对于源组件的水平x位置。
获取Y - 返回事件相对于源组件的垂直y位置。
相对于源组件,这是否意味着JPanel的左上角是0,0?那么我怎么知道GridLayout中哪些面板被点击了?
答案 0 :(得分:1)
将您需要的信息放在您添加到组件的鼠标侦听器中。在设置中执行此操作比使用映射和查找更容易。
答案 1 :(得分:0)
您可以在视图类中构建一个Map并创建一个方法
public void getJPanelPos(JPanel panel)
检索tyhe事件的JPanel源的位置