我正在尝试遵循 MVC 设计,目前正在我的 Controller 类中创建一个 MouseAdapter。我的模型类之一中有一个与 GridLayout 大小相同的数组。 因此,当有人单击网格中某处的 JPanel 时,我会使用 MouseAdapter 来通知模型并执行某些操作。 JPanel 位于另一个类 View 中。
但是为此我需要该特定 JPanel 的索引/位置,有什么方法可以获取它吗?
我检查了 MouseEvent 的 GetX 和 GetY 方法,其中指出:
GetX - 返回事件相对于源组件的水平 x 位置。
获取 Y - 返回事件相对于源组件的垂直 y 位置。
相对于源组件,是不是意味着JPanel的左上角是0, 0?那么我如何知道 GridLayout 中的哪个面板被单击呢?
最佳答案
您可以在 View 类中构建一个 map 并创建一个方法
public void getJPanelPos(JPanel panel)
检索 JPanel 事件源的位置
关于java - 获取 GridLayout 中 JPanel 的位置/索引?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4682229/