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