Как вертикально выровнять два объекта JSlider независимо от галочек

Я использую несколько горизонтально расположенных объектов JSlider в своем Java-приложении и хотел бы выровнять их левый и правый концы дорожек по вертикали. Это означает, что всякий раз, когда две ручки расположены на левом конце их дорожки, верхняя ручка должна быть точно над нижней без какого-либо смещения в горизонтальном направлении.

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

Пример проблемы выравнивания JSlider

Кто-нибудь знает, как выровнять по вертикали дорожки двух горизонтально расположенных объектов JSlider независимо от их галочек?

Решением моей проблемы может быть выравнивание меток по левому краю/выравниванию по правому краю в конце дорожки (т. е. метка на крайнем левом отметке выравнивается по левому краю относительно ее отметки), но я не понял, как я мог бы это сделать тот. Может быть, есть и лучшее решение, о котором я не подумал.

Спасибо, Санреал.


person Sandreal    schedule 04.05.2017    source источник


Ответы (1)


Я не думаю, что метки JSlider доступны таким образом, что вы можете редактировать их расположение, поэтому вместо этого вам следует создать отдельные метки и расположить себя относительно JSlider, тогда вы можете быть уверены, что они не повлияют на JSlider ( в зависимости от вашего менеджера компоновки).

person sorifiend    schedule 04.05.2017
comment
Хорошая точка зрения! Никогда не думал об этом ... Я попробую и дам вам отзыв, легко ли это сделать так или нет. - person Sandreal; 04.05.2017
comment
Да, работает очень хорошо, спасибо! Я установил для slider.setPaintLabels значение false и добавил метки в нужные места. Я думаю, что GroupLayout — хороший выбор для удобного позиционирования. - person Sandreal; 04.05.2017