code: public void insertTable(Table aTable, Point aLocation) {
          
          if (aTable == null) { 
          	throw new NullPointerException("insertTable - table has null-value");
          }
          if (aLocation == null) {
          	throw new NullPointerException("insertTable - point has null-value");
          }
          mTableInserted = true;
          aTable.complete();
          
          if (aLocation.y > columns) {
          	throw new IllegalArgumentException("insertTable -- wrong columnposition("+ aLocation.y + ") of location; max =" + columns);
          }
          
          int rowCount = aLocation.x + 1 - rows.size();
          int i = 0;
          if ( rowCount > 0 ) {   //create new rows ?
              for (; i < rowCount; i++) {
                  rows.add(new Row(columns));
              }
          }
          
          rows.get(aLocation.x).setElement(aTable,aLocation.y);
          
          setCurrentLocationToNextValidPosition(aLocation);
      }
docs: To put a table within the existing table at the given position
  generateTable will of course re-arrange the widths of the columns.
  
  @param   aTable      the table you want to insert
  @param   aLocation   a <CODE>Point</CODE>