Code
private static <E> void move1(JList<E> from, JList<E> to) {
ListSelectionModel sm = from.getSelectionModel();
int[] selectedIndices = from.getSelectedIndices();
DefaultListModel<E> fromModel = (DefaultListModel<E>) from.getModel();
DefaultListModel<E> toModel = (DefaultListModel<E>) to.getModel();
List<E> unselectedValues = new ArrayList<>();
for (int i = 0; i < fromModel.getSize(); i++) {
if (!sm.isSelectedIndex(i)) {
unselectedValues.add(fromModel.getElementAt(i));
}
}
if (selectedIndices.length > 0) {
for (int i: selectedIndices) {
toModel.addElement(fromModel.get(i));
}
fromModel.clear();
unselectedValues.forEach(fromModel::addElement);
}
}
References