1:import javax.swing.*;
   2:import javax.swing.event.*;
   3:import java.awt.*;
   4:import java.awt.event.*;
   5:/** 
   6:    This class demonstrates the basics of setting up a Java Swing GUI uisng the
   7:    BorderLayout. You should be able to use this program to drop in other
   8:    components when building a GUI 
   9:*/
  10:public class BasicGui{
  11:    // Initialize all swing objects.
  12:    private JFrame f = new JFrame("Basic GUI"); //create Frame
  13:    private JPanel pnlNorth = new JPanel(); // North quadrant 
  14:    private JPanel pnlSouth = new JPanel(); // South quadrant
  15:    private JPanel pnlEast = new JPanel(); // East quadrant
  16:    private JPanel pnlWest = new JPanel(); // West quadrant
  17:    private JPanel pnlCenter = new JPanel(); // Center quadrant
  18:
  19:    // Buttons some there is something to put in the panels
  20:    private JButton btnNorth = new JButton("North");
  21:    private JButton btnSouth = new JButton("South");
  22:    private JButton btnEast = new JButton("East");
  23:    private JButton btnWest = new JButton("West");
  24:    private JButton btnCenter = new JButton("Center");
  25:
  26:    // Menu
  27:    private JMenuBar mb = new JMenuBar(); // Menubar
  28:    private JMenu mnuFile = new JMenu("File"); // File Entry on Menu bar
  29:    private JMenuItem mnuItemQuit = new JMenuItem("Quit"); // Quit sub item
  30:    private JMenu mnuHelp = new JMenu("Help"); // Help Menu entry
  31:    private JMenuItem mnuItemAbout = new JMenuItem("About"); // About Entry
  32:
  33:    /** Constructor for the GUI */
  34:    public BasicGui(){
  35:        // Set menubar
  36:        f.setJMenuBar(mb);
  37:        
  38:        //Build Menus
  39:        mnuFile.add(mnuItemQuit);  // Create Quit line
  40:        mnuHelp.add(mnuItemAbout); // Create About line
  41:        mb.add(mnuFile);        // Add Menu items to form
  42:        mb.add(mnuHelp);
  43:
  44:        // Add Buttons
  45:        pnlNorth.add(btnNorth);
  46:        pnlSouth.add(btnSouth);
  47:        pnlEast.add(btnEast);
  48:        pnlWest.add(btnWest);
  49:        pnlCenter.add(btnCenter);
  50:        
  51:        // Setup Main Frame
  52:        f.getContentPane().setLayout(new BorderLayout());
  53:        f.getContentPane().add(pnlNorth, BorderLayout.NORTH);
  54:        f.getContentPane().add(pnlSouth, BorderLayout.SOUTH);
  55:        f.getContentPane().add(pnlEast, BorderLayout.EAST);
  56:        f.getContentPane().add(pnlWest, BorderLayout.WEST);
  57:        f.getContentPane().add(pnlCenter, BorderLayout.CENTER);
  58:        
  59:        // Allows the Swing App to be closed
  60:        f.addWindowListener(new ListenCloseWdw());
  61:        
  62:        //Add Menu listener
  63:        mnuItemQuit.addActionListener(new ListenMenuQuit());
  64:    }
  65:    
  66:    public class ListenMenuQuit implements ActionListener{
  67:        public void actionPerformed(ActionEvent e){
  68:            System.exit(0);         
  69:        }
  70:    }
  71:    
  72:    public class ListenCloseWdw extends WindowAdapter{
  73:        public void windowClosing(WindowEvent e){
  74:            System.exit(0);         
  75:        }
  76:    }
  77:    
  78:    public void launchFrame(){
  79:        // Display Frame
  80:        f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  81:        f.pack(); //Adjusts panel to components for display
  82:        f.setVisible(true);
  83:    }
  84:    
  85:    public static void main(String args[]){
  86:        BasicGui gui = new BasicGui();
  87:        gui.launchFrame();
  88:    }
  89:}