title: Difference between validate(), revalidate() and invalidate() in Swing GUI
body: <p>Swing components have multiple methods related to updates of screen layout, in particular:</p>
  
  <ul>
  <li><a href="http://docs.oracle.com/javase/8/docs/api/java/awt/Container.html#validate--"><code>validate()</code></a></li>
  <li><a href="http://docs.oracle.com/javase/8/docs/api/java/awt/Container.html#invalidate--"><code>invalidate()</code></a></li>
  <li><a href="http://docs.oracle.com/javase/8/docs/api/javax/swing/JComponent.html#revalidate--"><code>revalidate()</code></a></li>
  </ul>
  
  <p>The Java documentation defines these somewhat from a technical perspective, but it's not particularly clear how they are meant to be used.</p>
  
  <p>What is the difference between these, and in what circumstances should you use one rather than the others?</p>