void (@NotNull List<? extends T> data) { final Object selectedValue = myComponent.getSelectedValue(); final int index = myComponent.getSelectedIndex(); ListModel model = myComponent.getModel(); if (model instanceof NameFilteringListModel) { ((NameFilteringListModel)model).replaceAll(data); } else if (model instanceof CollectionListModel){ ((CollectionListModel)model).replaceAll(data); } else { throw new UnsupportedOperationException("JList model of class " + model.getClass() + " is not supported by JBListUpdater"); } if (index == 0) { myComponent.setSelectedIndex(0); } else { myComponent.setSelectedValue(selectedValue, true); } }