Как отрисовать новые элементы, удалив старые, в Swing после нажатия кнопки
Делаю крестики нолики с GUI на Swing. Вначале игроки вводят имя:

После нажатия на кнопку имена сохраняются в модели и начинается сама игра:
Вопрос в следующем: что нужно сделать, чтобы игра перешла из первого состояния на первой картинке в состояние на второй картинке? Нужно перерисовать JPanel, или лучше удалить этот объект jpanel и создать новый, поместить его на jframe и отрисовать его, как сейчас я и делаю, но нормально это всё не перерисовывается.
Ответы (1 шт):
Вам нужно удалить из Frame текущую панель и добавить новую. Ранее был опыт написания крестиков-ноликов. В моей версии игры можно было выбрать играть с компьютером или вдвоем, в зависимости от выбора загружалось поле
private void buttonClick(ActionEvent e) {
this.getContentPane().remove(currentPanel);
if (e.getSource().equals(button1)) {
this.getContentPane().add(playerAndComputer.getPanel(), BorderLayout.CENTER);
currentPanel = playerAndComputer.getPanel();
} else if (e.getSource().equals(button2)) {
this.getContentPane().add(playerAndPlayer.getPanel(), BorderLayout.CENTER);
currentPanel = playerAndPlayer.getPanel();
}
currentPanel.revalidate();
this.repaint();
}
