= JFrame = == Theme == In main(), set the theme before opening your form: public class frmMain extends javax.swing.JFrame { //... public static void main(String args[]) { /* Set the Nimbus look and feel */ // /* If Nimbus (introduced in Java SE 6) is not available, stay with the default look and feel. * For details see http://download.oracle.com/javase/tutorial/uiswing/lookandfeel/plaf.html */ try { for (javax.swing.UIManager.LookAndFeelInfo info : javax.swing.UIManager.getInstalledLookAndFeels()) { //if ("CDE/Motif".equals(info.getName())) { //if ("Metal".equals(info.getName())) { //if ("Nimbus".equals(info.getName())) { //if ("Windows Classic".equals(info.getName())) { if ("Windows".equals(info.getName())) { javax.swing.UIManager.setLookAndFeel(info.getClassName()); break; } } } catch (ClassNotFoundException ex) { java.util.logging.Logger.getLogger(frmMain.class.getName()).log(java.util.logging.Level.SEVERE, null, ex); } catch (InstantiationException ex) { java.util.logging.Logger.getLogger(frmMain.class.getName()).log(java.util.logging.Level.SEVERE, null, ex); } catch (IllegalAccessException ex) { java.util.logging.Logger.getLogger(frmMain.class.getName()).log(java.util.logging.Level.SEVERE, null, ex); } catch (javax.swing.UnsupportedLookAndFeelException ex) { java.util.logging.Logger.getLogger(frmMain.class.getName()).log(java.util.logging.Level.SEVERE, null, ex); } // /* Create and display the form */ java.awt.EventQueue.invokeLater(new Runnable() { public void run() { new frmMain().setVisible(true); } }); } } References: * [[https://stackoverflow.com/questions/9541045/how-to-set-jframe-look-and-feel]] == Layout Managers == Java Swing uses Layout Managers to manage the size and position of visual components. Tutorial on how to use these Layout Managers: [[http://java.sun.com/docs/books/tutorial/uiswing/layout/using.html]] Most common layout managers: * **FlowLayout (default)**: it disposes the components left to right and up to down. * **BorderLayout**: it divides the container in NORTH, SOUTH, WEST, EAST center CENTER. Only one component by position. Components on border expands and the center component uses the space avaiable * **GridLayout**: you initialice the manager indicating how many rows and cols the grid is going to have. Each cell has same size and you start adding component on the top left cell. * **GridBagLayout**: the MOST fine grained layout manager, you can do anything with this, but is a bit complicated, see the java documentation for it. * **NullLayout** (when you nullify the container's layout manayer): no layout manager, components uses the location and size properties to show on components. * Containers inside in other containers can use a different layout manager than their parent. Combining layout managers is a difficult art to learn. References: [[https://stackoverflow.com/questions/1496858/anchoring-and-docking-controls-in-java-swing]]