private void setDefaultPreferredColumnSizes() {

		//
		// 					Unusual Code Alert!
		// The table model wants to resize the columns such that they all get an equal share
		// of any available width upon initialization.  This defeats the preferred size of
		// a column if it is specified (which it is usually not).  To override this badness,
		// we will set all preferred sizes AND then for all columns without a preferred size,
		// specify a large value, which causes Java's layout algorithm to have less remaining
		// width to divided amongst all the table columns.  Essentially, we need to make the
		// total width of all columns larger than the table size.  We do this by giving large
		// default width values.
		//
		// FYI, Java's badness happens inside of JTable.doLayout().
		//
		// To easily specify a preferred size for a column, do so in your DynamicTableColumn's
		// getColumnPreferredWidth() method.   If your model is not dynamic, then you have
		// to specify the preferred size manually after you construct your table by grabbing
		// its ColumnModel.
		//

		TableModel model = table.getUnwrappedTableModel();
		if (!(model instanceof AbstractGTableModel<?>)) {
			return;
		}

		AbstractGTableModel<?> gModel = (AbstractGTableModel<?>) model;
		List<TableColumn> columnList = columnModel.getAllColumns();
		for (TableColumn col : columnList) {
			int defaultPreferred = col.getPreferredWidth();
			if (defaultPreferred > 0 && defaultPreferred != 75) {
				// honor any saved preferred size (ignoring the magic default value found
				// inside of TableColumn)
				col.setWidth(defaultPreferred);
				continue;
			}

			int preferred = gModel.getPreferredColumnWidth(col.getModelIndex());
			if (preferred < 15) {
				preferred = LARGE_DEFAULT_COL_WIDTH;
			}
			int size = preferred;
			col.setWidth(size);
			col.setPreferredWidth(size);
		}
	}
Configure the columns in this model with their preferred size.
Ghidra/Framework/Docking/src/main/java/docking/widgets/table/TableColumnModelState.java