Обнаружение источника изменения размера JPanel - PullRequest
2 голосов
/ 27 января 2011

У меня есть класс TablePanel, произошедший от JPanel.Экземпляр этого класса иногда изменяет свой размер, когда я нажимаю на флажок, который находится в другой части фрейма.

Существует ли какой-либо прослушиватель событий или что-то подобное, чтобы я мог отследить, какое событие на самом деле вызывает изменение размера этой TablePanel?

Я попытался добавить следующее в конструктор TablePanel:

        addPropertyChangeListener(new PropertyChangeListener() {
            public void propertyChange(PropertyChangeEvent evt) {
                    System.out.println("TablePanel evt: " + evt);
            }
        });

но это не «выстрел», когда происходит изменение размера.

1 Ответ

2 голосов
/ 27 января 2011

Полагаю, вы ищете событие componentResized для ComponentListener.

Хотя я не уверен, зачем тебе это нужно. Диспетчер компоновки вашей панели должен обрабатывать изменение размера / компоновки любых компонентов на панели.

Это не даст вам фактический источник изменений. Исходное событие, скорее всего, изменяет размер фрейма, и затем менеджеры макета выполняют свою работу.

Экземпляр этого класса иногда изменяет свой размер, когда я нажимаю на флажок, который находится в другой части фрейма.

Я никогда не видел, чтобы это случилось. Нажатие на флажок не должно изменять его размер, поэтому нет причин для повторного размещения компонентов на панели. У вас должен быть какой-то странный код. Опубликуйте свой SSCCE, который демонстрирует проблему.

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