diff --git a/src/main/java/org/swing/enhance/switching/SwitchDialog.java b/src/main/java/org/swing/enhance/switching/SwitchDialog.java index 4b6f058..7ffb0fc 100755 --- a/src/main/java/org/swing/enhance/switching/SwitchDialog.java +++ b/src/main/java/org/swing/enhance/switching/SwitchDialog.java @@ -44,13 +44,15 @@ public void selectNext() { ? list.getSelectedIndex() + 1 : 0; list.setSelectedIndex(indexToSelect); + list.ensureIndexIsVisible(indexToSelect); } public void selectPrevious() { - int indexToSelect = list.getSelectedIndex() != 0 + int indexToSelect = Math.max(0, list.getSelectedIndex() != 0 ? list.getSelectedIndex() - 1 - : list.getModel().getSize() - 1; - list.setSelectedIndex(indexToSelect > -1 ? indexToSelect : 0); + : list.getModel().getSize() - 1); + list.setSelectedIndex(indexToSelect); + list.ensureIndexIsVisible(indexToSelect); } public T getSelected() {