void (final @NotNull JList<?> list) { SwingUtilities.invokeLater(() -> { final int selectedIndex = list.getSelectedIndex(); if (selectedIndex >= 0) { final Rectangle visibleRect = list.getVisibleRect(); final Rectangle cellBounds = list.getCellBounds(selectedIndex, selectedIndex); if (!visibleRect.contains(cellBounds)) { list.scrollRectToVisible(cellBounds); } } }); }