обновление вида только после изменения размера JFrame - PullRequest
0 голосов
/ 20 ноября 2010

Итак, у меня есть JFrame, внутри которого у меня есть JScrollPane, а внутри JScrollPane у меня есть JPanel.У меня есть слушатель мыши при нажатии кнопки, который изменяет JPanel внутри JScrollPane.Код в прослушивателе мыши:

@Override
    public void mouseClicked(MouseEvent arg0) {

            searchResult.updateInfo();

        }

Метод updateInfo добавляет группу JPanel в JPRel searchResult.После нажатия кнопки, связанной с этим слушателем, ничего не происходит, но когда я изменяю размер JFrame .. он обновляет представление .. почему это так?

Я пытался перекрасить JFrame, но это не решило мою проблему

Ответы [ 2 ]

2 голосов
/ 20 ноября 2010

После добавления / удаления компонентов из видимого графического интерфейса пользователя необходимо указать панели для размещения компонентов, чтобы можно было пересчитать предпочтительный размер.Вам необходимо добавить:

searchResult.revalidate();
searchResult.repaint(); // sometimes needed

Тогда, если предпочтительный размер больше размера полосы прокрутки, появится полоса прокрутки.

0 голосов
/ 20 ноября 2010

Марка searchResult.removeAll(); searchResult.updateInfo(); searchResult.validate(); если это не сработает, сделай так searchResult.removeAll(); searchResult.updateInfo(); searchResult.validate(); searchResult.repaint();

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