Question: I have a general question that is Java related.

I am writing an application that has a GUI menu. I am trying to change one part of the GUI menu based on the selection of a Radio button.

Do I need to:

1. Redraw the whole window or just update that part with:

```
setVisible(true)?

```
2. If I just use the statement from #1 above .. the GUI is fine -- until I move the mouse over it and then I see the previous button choice. What am I doing wrong?

Answer: 
Swing components have a repaint(), revalidate(), and doLayout() method. One of those should probably be able to redraw whichever pieces you want. However, doLayout is not something that you should be taking responsibility for, that's the layout engines responsibility.

You may also want to check out [this post](https://stackoverflow.com/questions/1097366/java-swing-revalidate-vs-repaint "this post"), the first response has a pretty good explanation, and links to an article with more detail.

In terms of the second part of your question, I'm not sure, but we may need to see some code to get an idea. Is the 'replaced area' actually being removed from the view?
> 
> ..in my application the user select which device platform type they want top test (that choice is a set of two radio buttons on the left). When the user selects either Android or iOS, the center grouping of check boxes changes to reflect a group of android devices they can test or a group of iOS devices that they can test. 
> 
> 
> 

1. Put a panel in the 'center grouping'.
2. Use a `CardLayout` for the panel.
3. Add both iOS & Android controls to the panel with the card layout.
4. Flip between them as needed.