@Override
	public void layoutContainer(Container parent) {
		int componentCount = parent.getComponentCount();
		int rowCount = (componentCount + (columnCount - 1)) / columnCount;
		Dimension d = parent.getSize();
		Insets insets = parent.getInsets();
		int width = d.width - (insets.left + insets.right);
		int[] desiredColumnWidths = getDesiredColumnWidths(parent);
		int totalDesiredWidth = getTotalWidth(desiredColumnWidths);
		int offset = (totalDesiredWidth < width) ? ((width - totalDesiredWidth) / 2) : 0;
		int[] computedColumnWidths = getComputedColumnWidths(width, desiredColumnWidths);
		int y = insets.top;
		for (int i = 0; i < rowCount; i++) {
			int x = insets.left + offset;
			int rowHeight = getRowHeight(parent, i);
			for (int j = 0; j < columnCount; j++) {
				int ordinal = i * columnCount + j;
				if (ordinal >= componentCount) {
					// this implies uneven components (can't fill the last row)
					break;
				}
				Component component = parent.getComponent(ordinal);
				component.setBounds(x, y, computedColumnWidths[j], rowHeight);
				x += computedColumnWidths[j] + hgap;
			}
			y += rowHeight + vgap;
		}
	}
Allows you to indicate that you want to try to keep the size of a column at the preferred 
size of the widest component in that column as the parent container component is resized. 
Any column that has been maximized won't shrink until the non-maximized windows are reduced 
to a width of zero.
@param column the number (0 based) of the column to keep maximized.
Ghidra/Framework/Gui/src/main/java/ghidra/util/layout/MaximizeSpecificColumnGridLayout.java