title: mixing gridlayout and borderlayout
body: <p>I was tired but before quitting just stuck in the nearly-last 3 lines in the code snippet below to make a "refresh" button on my tictactoe panel, hoping to get away with it but expecting errors, since it mixes layout managers on a single container. </p>
  
  <p>But it WORKED.</p>
  
  <pre><code>ButtonPanel.setLayout(new GridLayout(3, 3));    
  guiFrame.add(ButtonPanel); 
  for (int i = 0; i &lt; 3; i++) {
    for (int j = 0; j &lt; 3; j++) {
      button[i][j] = addButton(ButtonPanel, i, j);
    }
  }
  
  JButton refreshbutton = new JButton("Refresh");
  guiFrame.add(refreshbutton, BorderLayout.SOUTH); // ... border layout worked. Hm.
  refreshbutton.addActionListener(this);
  
  guiFrame.setVisible(true);   }
  </code></pre>
  
  <p>Should I be surprised? (Keep in mind my newbieness.)</p>
  
  <p>(<em>BOY</em>, did I learn/stumble onto a buncha stuff in writing this silly game's program!!!--for instance, using <code>setActionCommand</code> to "label" each button internally [as 11,12,13,21,...33] so the ONE <code>actionPerformed</code> method could use <code>getActionCommand</code> to correctly label [with X or O] whatever button was pushed by whoever's turn it was.)</p>