title: InvokeLater() - will just once be enough?
body: <p>I use the recommended code to start my interactive program, which uses Swing.  :</p>
  
  <pre><code>    public static void main(String[] args) {
          javax.swing.SwingUtilities.invokeLater(
          new Runnable() {
            public void run() {
              createAndShowGUI();
            } } ) };
  </code></pre>
  
  <p><P>It creates a JFrame, call it "Foo", and ends when the user closes that window (by using the OS' Close- Window X icon or another OS way to close the app)
  <P>I want to display another window, "Bar", get user input, close that window with my own Swing calls, and then display the "Foo" window. 
  <P>I could reuse the same JFrame for Foo and Bar, and just clear it out in-between. But I prefer to make each of them more independent in their design. So, an ActionListener in Foo would need to close Foo's frame, and call the code that displays Bar.<br>
  <P>Do I need to use InvokeLater() to call the code that displays Bar? To get more design independence, should my main() be starting and synchronizing two threads? </p>