I'm not sure if this answers your question, but I had a similar problem. My problem was that dragging the vertical JScrollPane handle caused the JList to scroll in blocks rather than units, that is, the top cell was always displayed in its entirety, except when the list was scrolling from the bottom.
Curiously, this only happened when using the look of Windows. Using L & F by default, I got the behavior that I wanted. And after many digging, I found this post , which showed that there is a L & F property for this. By default, this is true for Windows L & F, but you can set it to false:
UIManager.put("List.lockToPositionOnScroll", Boolean.FALSE);
source share