CS 235 - Week 8 Lab - 2015-10-14

*   threading/multithreading
    *   Chapter 14! in course text
    *   coverage should include parts of
        14.1, 14.2, 14.3, and also maybe
        14.5.15, 14.11, 14.11.1, 14.11.3

*   so: GridBagLayout:
    you create a GridBagConstraints object,
    set up for the layout details for a particular
        object,
    then you add that component including
        the constraints object for that component;

*   in a GridBagConstraints object,
    it has numerous PUBLIC (?!?) data fields;
    *   gridx
        gridy - in which row, column is the
	        upper-left corner of this component?

    *   gridwidth
        gridheight - controls the number of columns
	             and rows this component occupies

    *   weightx
        weighty - the portion of extra space
	          (horizontally and vertically)
                  to allocate when the container
		  is resized

        Core Java says: use 0, or 100, and only anything
	    in between as needed;
	Java Tutorial says: 0.0 to 1.0...!

        *   0.0 means you don't care to take advantage
	    of additional space
	    1.0 means you do...

        *   we'll start with 1.0, maybe play from there;

   *   fill - specifies how much of the component's
       area is occupied (at layout time) --
       static constraints!
       GridBagConstraints.NONE, VERTICAL, HORIZONTAL, BOTH

   *   anchor - specifies the location of the component
       within its area when the component doesn't
       fill the whole area

       used to be: absolute constants such as:
       NORTH, NORTHEAST, SOUTH, SOUTHEAST, etc.

       now (since Java 1.4) also relative constants:
       
       FIRST_LINE_START      PAGE_START    FIRST_LINE_END
    
       LINE_START            CENTER        LINE_END

       LAST_LINE_START       PAGE_END      LAST_LINE_END

    *   ipadx, ipady - controls the padding between a component
        and the borders of its area

        *   this is INTERNAL padding;
        *   these values are added to the minimim height
	    and weight of the component,
	    and ensure that the component does not shrink
	    down to its minimum size...

    *   Insets insets - controls the padding between
        a component and NEIGHBORING components;
        *   set the left, top, right, and bottom
            values of an Insets object TO the amount
	    of space you want around the outside border
	    of this component

	    ...external padding!