Я собираю приложение Swing, где я часто хочу заменить содержимое JPanel. Для этого я вызываю removeAll()
, а затем добавляю новый контент, а затем вызываю revalidate()
.
Однако я нахожу, что старый контент по-прежнему на самом деле видимый (хотя и скрыт от нового содержимого). Если я добавлю вызов repaint()
в дополнение к revalidate()
, он будет работать как ожидалось.
В некоторых случаях я уверен, что достаточно просто вызвать revalidate()
.
Итак, в основном, мой вопрос: нужно ли мне звонить обеим функциям, а если нет, когда я должен позвонить каждому из них?