Все, что делает ваш метод buildCenter()
, это создает пустую панель с черным фоном.
Затем вы добавляете эту пустую панель в рамку:
panel.add(buildCenter(), BorderLayout.CENTER);
Затем в ActionListener выdo:
buildCenter().add(fire);
buildCenter().repaint();
buildCenter().validate();
Все, что нужно сделать - это создать еще 3 пустые панели.Вы не хотите создавать еще 3 панели.Вы хотите добавить компоненты к существующей панели.
Вам нужно создать отдельный экземпляр вашей «центральной» панели, а затем сохранить переменную, которая ссылается на эту панель, чтобы вы могли обновить панель в будущем..
Итак, вам нужно определить переменную экземпляра в вашем классе:
private JPanel centerPanel;
Затем в методе buildGui () вы создадите панель:
//panel.add(buildCenter(), BorderLayout.CENTER);
centerPanel = buildCenter();
panel.add(buildCenter, BorderLayout.CENTER);
Затем в вашем ActionListener
вы можете добавить компоненты на центральную панель:
//buildCenter().add(fire);
//buildCenter().repaint();
//buildCenter().validate();
centerPanel.add( fire );
centerPanel.revalidate();
centerPanel.repaint();