Получить позицию / индекс JPanel в GridLayout? - PullRequest
1 голос
/ 13 января 2011

Я пытаюсь следовать MVC-дизайну и в настоящее время создаю MouseAdapter в своем классе Controller.У меня есть массив того же размера, что и GridLayout в одном из моих классов моделей.Поэтому, когда кто-то щелкает JPanel где-то в сетке, я бы назначил MouseAdapter, чтобы уведомить модель и сделать что-нибудь.JPanels находятся в другом классе, View.

Но для этого мне нужен индекс / позиция этого конкретного JPanel, есть ли способ получить его?

Я проверил GetX и GetYметоды MouseEvent, состояние которых:

GetX - возвращает горизонтальную позицию по оси x события относительно исходного компонента.

Get Y - Возвращает вертикальную y позицию события относительно исходного компонента.

Относительно исходного компонента означает ли это, что левый верхний угол JPanel равен 0, 0?Как тогда узнать, какая из панелей в GridLayout была нажата?

Ответы [ 2 ]

1 голос
/ 13 января 2011

Поместите требуемую информацию в слушатель мыши, который вы добавляете в компонент.Это проще сделать в настройках, чем сопоставления и поиски.

0 голосов
/ 13 января 2011

Вы можете построить Map в своем классе представления и создать метод

public void getJPanelPos(JPanel panel) 

, чтобы получить положение JPanel-источника события

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...