public HTMLGen input(String id, String label, boolean required, String ... attrs) {
		Mark mtr = new Mark(TR);
		Mark mtd = new Mark(TD);
		incr(mtr);
		incr(mtd);
		incr("label",true, "for="+id,required?"required":null).text(label).end();
		end(mtd);
		String nattrs[] = new String[attrs.length+(required?3:2)];
		nattrs[0]="id="+id;
		nattrs[1]="name="+id;
		System.arraycopy(attrs, 0, nattrs, 2, attrs.length);
		if(required) {
			nattrs[nattrs.length-1]="required";
		}
		incr(mtd);
		tagOnly("input",nattrs);
		end(mtr);
		return this;
	}
public HTMLGen input ( String id , String label , boolean required , String ... attrs ) { Mark mtr = new Mark ( TR ) ; Mark mtd = new Mark ( TD ) ; incr ( mtr ) ; incr ( mtd ) ; incr ( "label" , true , "for=" + id , required ? "required" : null ) . text ( label ) . end ( ) ; end ( mtd ) ; String nattrs [ ] = new String [ attrs . length + ( required ? 3 : 2 ) ] ; nattrs [ 0 ] = "id=" + id ; nattrs [ 1 ] = "name=" + id ; System . arraycopy ( attrs , 0 , nattrs , 2 , attrs . length ) ; if ( required ) { nattrs [ nattrs . length - 1 ] = "required" ; } incr ( mtd ) ; tagOnly ( "input" , nattrs ) ; end ( mtr ) ; return this ; }
Input Cheesecake... creates a Label and Field in the form of Table Rows.
Make sure you create a table first, ie.  incr(HTMLGen.TABLE);

Setting Required to "true" will add required Attribute to both Label and Field.  In HTML5, "required" in the input will
validate there is data in the fields before submitting.  "required" does nothing for label, but allows for
easy CSS coding... "label[required] { ... }", so that colors can be changed

@param id
@param label
@param required
@param attrs
@return