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

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

我正在尝试遵循 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/

相关文章:

Java:加快和减慢时间

java - 使用 MVC 绘制同心/旋转图形

java - Mac 中的子框架运动

java - Jgoodies 演示源代码不可用

java - 用户鼠标单击 Java 对象

java - 没有@RequestMapping的单个Spring mvc 4 Controller 返回从我的html View 中剥离css

Java 控制台应用程序打开并运行 JAR 文件

Java 类查找工具

java - 执行重复的 Spring Controller 代码的最佳方式?

ruby-on-rails - Rails 模型和 Controller