public GridBagLayoutBuilder appendLabeledField(final JLabel label, final JComponent field,
            LabelOrientation labelOrientation, int colSpan, int rowSpan, boolean expandX, boolean expandY) {
        label.setLabelFor(field);

        final int col = getCurrentCol();
        final int row = getCurrentRow();
        final Insets insets = getDefaultInsets();

        if (labelOrientation == LabelOrientation.LEFT || labelOrientation == null) {
            label.setHorizontalAlignment(SwingConstants.RIGHT);
            append(label, col, row, 1, 1, false, expandY, insets);
            append(field, col + 1, row, colSpan, rowSpan, expandX, expandY, insets);
        }
        else if (labelOrientation == LabelOrientation.RIGHT) {
            label.setHorizontalAlignment(SwingConstants.LEFT);
            append(field, col, row, colSpan, rowSpan, expandX, expandY, insets);
            append(label, col + colSpan, row, 1, rowSpan, false, expandY, insets);
        }
        else if (labelOrientation == LabelOrientation.TOP) {
            label.setHorizontalAlignment(SwingConstants.LEFT);
            append(label, col, row, colSpan, 1, expandX, false, insets);
            append(field, col, row + 1, colSpan, rowSpan, expandX, expandY, insets);
        }
        else if (labelOrientation == LabelOrientation.BOTTOM) {
            label.setHorizontalAlignment(SwingConstants.LEFT);
            append(field, col, row, colSpan, rowSpan, expandX, expandY, insets);
            append(label, col, row + rowSpan, colSpan, 1, expandX, false, insets);
        }

        return this;
    }
public GridBagLayoutBuilder appendLabeledField ( final JLabel label , final JComponent field , LabelOrientation labelOrientation , int colSpan , int rowSpan , boolean expandX , boolean expandY ) { label . setLabelFor ( field ) ; final int col = getCurrentCol ( ) ; final int row = getCurrentRow ( ) ; final Insets insets = getDefaultInsets ( ) ; if ( labelOrientation == LabelOrientation . LEFT || labelOrientation == null ) { label . setHorizontalAlignment ( SwingConstants . RIGHT ) ; append ( label , col , row , 1 , 1 , false , expandY , insets ) ; append ( field , col + 1 , row , colSpan , rowSpan , expandX , expandY , insets ) ; } else if ( labelOrientation == LabelOrientation . RIGHT ) { label . setHorizontalAlignment ( SwingConstants . LEFT ) ; append ( field , col , row , colSpan , rowSpan , expandX , expandY , insets ) ; append ( label , col + colSpan , row , 1 , rowSpan , false , expandY , insets ) ; } else if ( labelOrientation == LabelOrientation . TOP ) { label . setHorizontalAlignment ( SwingConstants . LEFT ) ; append ( label , col , row , colSpan , 1 , expandX , false , insets ) ; append ( field , col , row + 1 , colSpan , rowSpan , expandX , expandY , insets ) ; } else if ( labelOrientation == LabelOrientation . BOTTOM ) { label . setHorizontalAlignment ( SwingConstants . LEFT ) ; append ( field , col , row , colSpan , rowSpan , expandX , expandY , insets ) ; append ( label , col , row + rowSpan , colSpan , 1 , expandX , false , insets ) ; } return this ; }
Appends a label and field to the end of the current line.<p />

The label will be to the left of the field, and be right-justified.<br />
The field will "grow" horizontally as space allows.<p />

@param label   the label to associate and layout with the field
@param colSpan the number of columns the field should span

@return "this" to make it easier to string together append calls