java - initcomponents para que sirve
¿Cómo eliminar todos los componentes de un JFrame en Java? (3)
Debes llamar
private JFrame frame = new JFrame();
...
...
frame.getContentPane().removeAll();
frame.repaint();
removeAll()
no se ha anulado como add()
o remove()
para reenviar al contentPane
según sea necesario.
Estoy escribiendo un programa donde tengo un JFrame y quiero eliminar todos los componentes, luego agregarle solo un componente y volver a pintar el marco. Lo que tengo hasta ahora es algo así como el siguiente código (llamado en un objeto que implementa JFrame, donde StartPanel implementa JPanel):
removeAll();
startPanel = new StartPanel();
startPanel.setVisible(true);
add(startPanel);
revalidate();
repaint();
Sin embargo, cuando ejecuto el código, muestra una ventana vacía (no el panel de inicio) y cuando minimizo / cambio el tamaño de la ventana, la ventana se vuelve negra. Si removeAll()
el removeAll()
y no hay elementos en el JFrame, muestra el startPanel bien. ¿Alguna idea sobre cómo eliminar realmente todo y luego mostrar el panel nuevo?
suponiendo que su objetivo es agregar algo más después de borrar el marco, debe llamar a validar después de agregar estos componentes para actualizarlo
getContentPane().removeAll();
add(new component);
validate();
getContentPane().removeAll();
getContentPane().repaint();