I generally like Swing, but I just found something in the Metal L&F for JSlider that strikes me as a big WTF. The BasicSliderUI allows you to click in the "track" of the slider to scroll by a block. That's either 10% of the span of the slider, or a minimum of 1 unit. The MetalSliderUI overrides that sensible behavior with a method that scrolls by just one unit. Period.
Here's a quick fix:
JSlider slider = new JSlider(); slider.setUI(new MetalSliderUI() { protected void scrollDueToClickInTrack(int dir) { scrollByBlock(dir); } });