JPanel removeAll doesn't get rid of previous components
java, jpanel, swing
Solution
You can simply try calling :
cdPanel.revalidate();
cdPanel.repaint(); // This is required in some cases
instead of
cdPanel.validate();
Problem
I have a swing application in which I display images in a JPanel. If the app is unable to produce the image I want to remove the previous one from the JPanel and replace it with a JTextField and message. I can add the text field , but it's drawn on top of the previous contents, which is itself a subclass of JPanel. Here's what I have: ``` private void displayMessage(String message) { JTextField tf = new JTextField(message); cdPanel.removeAll(); cdPanel.add(tf, BorderLayout.NORTH);//tried lots of variations, inc. no layout cdPanel.validate(); } ``` How can I get cdPanel to completely redraw itself?