Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How do I refresh a GUI in Java?

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?

like image 993
ironmantis7x Avatar asked Oct 12 '12 19:10

ironmantis7x


2 Answers

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, 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?

like image 161
shortstuffsushi Avatar answered Nov 14 '22 23:11

shortstuffsushi


..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.
like image 34
Andrew Thompson Avatar answered Nov 14 '22 22:11

Andrew Thompson