Установите размер большого пальца JSlider

Как настроить размер большого пальца для JSlider?

При значениях по умолчанию и диапазоне для JSlider из 256 большой палец имеет ширину всего в несколько пикселей, что затрудняет управление мышью.

Я использую внешний вид Windows 7 и слайдер выглядит следующим образом:

Screenshot of slider

Включение paintTicks с большим и меньшим интервалом тика 0 дает лучший (хотя и не предпочтительный) дисплей:

Screenshot of slider with paintTicks enabled

Желаемый дисплей отображается на следующем изображении - взятом из собственного приложения Windows 7:

Screenshot of native slider

Ответ 1

Вы можете попробовать настроить JSlider Look and Feel следующим образом:

UIDefaults defaults = UIManager.getDefaults();
defaults.put("Slider.thumbHeight", HEIGHT_AS_INTEGER); // change height
defaults.put("Slider.thumbWidth", WIDTH_AS_INTEGER); // change width

Ссылка:

Важно отметить, что эти изменения будут применяться ко всем экземплярам JSlider, что может сделать этот подход нежелательным.

Ответ 2

Это зависит от SliderUI, который может иметь жесткие кодированные размеры. Если нет, использование предложения mre будет способом, если вы хотите иметь такой же размер большого пальца для всех слайдеров.

В качестве альтернативы для установки значений по умолчанию для пользовательского интерфейса, который их использует, вы можете определить другой пользовательский интерфейс для специального слайдера (например, myslider.setUI(new MyCustonSliderUI())), но имейте в виду, что у него есть свои недостатки.