2013-11-29 6 views
0

У вас странная проблема в приложении Java, выполненном с помощью Netbeans. Это игра с карточкой памяти. Основной класс - это JFrame, который имеет панель одинакового размера. Панель подразделяется на макет сетки с каждой ячейкой, держащей карту, другой класс, разработанный с небольшой панелью и меткой. Это для дизайна. Источник основного класса несет много функций для игры и тот, который возникает, когда игра закончилась, третий класс JDialog, также должен сбросить всю доску и наступает ошибка, когда функция использует метод removeAll(). Он removeAll(), но результат появляется только на экране, когда пользователь изменяет размер JFrame. Для обновления панели автоматически должен быть другой метод. Должен ли я прочитать полный JavaWiki, чтобы найти свой ответ?removeAll() замораживание игры

Спасибо

+2

Для многих компонентов в одном пространстве используйте ['CardLayout'] (http://docs.oracle.com/javase/7/docs/api/java/awt/CardLayout.html), как видно из этого [короткий пример] (http://stackoverflow.com/a/5786005/418556). –

ответ

3

Вызов revalidate(), а затем repaint() на контейнере после удаления или добавления компонентов к нему. Если это контентная площадка JFrame, тогда вам нужно будет вызвать эти методы на нем.

JPanel panel = (JPanel) jFrame.getContentPane(); 
panel.removeAll(); 
panel.revalidate(); 
panel.repaint(); 
  • revalidate() метод говорит менеджеры компоновки контейнера повторно макет содержал все componentss.
  • Метод repaint() отправляет запрос менеджеру repaint, чтобы перекрасить контейнер, который должен удалить окно «грязных» регионов.
+0

Извините, я не знал вашего ответа раньше. Это звонит, как звонок! Спасибо. –

+0

@SamuelDumont: добро пожаловать –

 Смежные вопросы

  • Нет связанных вопросов^_^