¿Alguien puede explicar por qué lo siguiente no funciona como espero?removeAll no elimina en la próxima validación?
Al presionar el botón 'should' debe aparecer en la pantalla solo el JScrollPane (vacío), es decir, el campo de entrada y el botón desaparecerán. Sin embargo, permanecen hasta que el componente se redimensiona ...
public static void main(String[] args)
{
JFrame frame = new JFrame("test");
frame.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
final JPanel panel = new JPanel();
Container cp = frame.getContentPane();
cp.setLayout(new FlowLayout());
cp.add(new JScrollPane(panel));
Component textField = new JTextField("i am input");
JButton button = new JButton(new AbstractAction("i am pressy")
{
@Override
public void actionPerformed(ActionEvent e)
{
// this is already on the EDT
panel.removeAll();
panel.revalidate();
}
});
panel.setLayout(new FlowLayout());
panel.add(textField);
panel.add(button);
frame.pack();
frame.setVisible(true);
}
Gracias por su ayuda. pag.
Pruebe 'panel.repaint()' en su lugar? – Jeremy
Bueno [sscce] (http://sscce.org/). – trashgod