Source:
<code>public List<TableColumn<BibEntryTableViewModel, ?>> createColumns() { List<TableColumn<BibEntryTableViewModel, ?>> columns = new ArrayList<>(); columnPreferences.getColumns().forEach(column -> { switch (column.getType()) { case INDEX: columns.add(createIndexColumn(column)); break; case GROUPS: columns.add(createGroupColumn(column)); break; case FILES: columns.add(createFilesColumn(column)); break; case LINKED_IDENTIFIER: columns.add(createIdentifierColumn(column)); break; case EXTRAFILE: if (!column.getQualifier().isBlank()) { columns.add(createExtraFileColumn(column)); } break; case SPECIALFIELD: if (!column.getQualifier().isBlank()) { Field field = FieldFactory.parseField(column.getQualifier()); if (field instanceof SpecialField) { columns.add(createSpecialFieldColumn(column)); } else { LOGGER.warn(Localization.lang("Special field type %0 is unknown. Using normal column type.", column.getQualifier())); columns.add(createFieldColumn(column)); } } break; default: case NORMALFIELD: if (!column.getQualifier().isBlank()) { TableColumn<BibEntryTableViewModel, ?> fieldColumn = createFieldColumn(column); columns.add(fieldColumn); if (column.getQualifier().equalsIgnoreCase(StandardField.YEAR.getName())) { <START> setExactWidth(fieldColumn, 60); <END> } else if (column.getQualifier().equalsIgnoreCase(InternalField.TYPE_HEADER.getName())) { setExactWidth(fieldColumn, 90); } else if (column.getQualifier().equalsIgnoreCase(StandardField.KEY.getName())) { fieldColumn.setMinWidth(ColumnPreferences.DEFAULT_COLUMN_WIDTH / 2); } else { fieldColumn.setMinWidth(ColumnPreferences.DEFAULT_COLUMN_WIDTH); } } break; } }); return columns; }</code><technical_language>I set a maximum width for year type columns. If users prefer give more space columns, not? Simply setting prefWidth fine</technical_language>

Target:
public List<TableColumn<BibEntryTableViewModel, ?>> createColumns() { List<TableColumn<BibEntryTableViewModel, ?>> columns = new ArrayList<>(); columnPreferences.getColumns().forEach(column -> { switch (column.getType()) { case INDEX: columns.add(createIndexColumn(column)); break; case GROUPS: columns.add(createGroupColumn(column)); break; case FILES: columns.add(createFilesColumn(column)); break; case LINKED_IDENTIFIER: columns.add(createIdentifierColumn(column)); break; case EXTRAFILE: if (!column.getQualifier().isBlank()) { columns.add(createExtraFileColumn(column)); } break; case SPECIALFIELD: if (!column.getQualifier().isBlank()) { Field field = FieldFactory.parseField(column.getQualifier()); if (field instanceof SpecialField) { columns.add(createSpecialFieldColumn(column)); } else { LOGGER.warn(Localization.lang("Special field type %0 is unknown. Using normal column type.", column.getQualifier())); columns.add(createFieldColumn(column)); } } break; default: case NORMALFIELD: if (!column.getQualifier().isBlank()) { TableColumn<BibEntryTableViewModel, ?> fieldColumn = createFieldColumn(column); columns.add(fieldColumn); fieldColumn.setPrefWidth(ColumnPreferences.DEFAULT_COLUMN_WIDTH); if (column.getQualifier().equalsIgnoreCase(StandardField.YEAR.getName())) { fieldColumn.setPrefWidth(60); } else if (column.getQualifier().equalsIgnoreCase(InternalField.TYPE_HEADER.getName())) { fieldColumn.setPrefWidth(90); } else { fieldColumn.setMinWidth(ColumnPreferences.DEFAULT_COLUMN_MIN_WIDTH); fieldColumn.setPrefWidth(ColumnPreferences.DEFAULT_COLUMN_WIDTH); } } break; } }); return columns; }