2012-02-14 2 views
4

Часть моего приложения имеет мультимедийный компонент, и я ищу хороший слайдер тома, который я могу использовать, а не JSlider, который выглядит немного уродливым для этой цели (или, в частности, расширенным JSlider с пользовательские визуальные эффекты были бы хороши). Я мог бы написать один, но я действительно не хочу изобретать велосипед.Java/Swing Volume Slider

С точки зрения «хороших» объем ползунки - Я ищу на линии что-то вроде VLC:

VLC volume slider

Есть (бесплатно) компонент, как это уже там, что я отсутствует?

+0

@AndrewThompson Спасибо, я обновил вопрос. – berry120

+0

Ich! Это так же уродливо, как и регулятор громкости на медиаплеере VLC! ;) –

+1

Возможно, вам лучше переопределить «JProgressBar», сделать обычную краску и добавить «MouseMotionListener». –

ответ

2

Jasper Potts имеет приятное сообщение в блоге о том, как вы можете обмениваться слайдером с помощью Nimbus Look and Feel: Skinning a slider with Nimbus.

Вот как это выглядит:

enter image description here

Соблюдая пост в блоге, это не очень трудно сделать свой собственный взгляд на слайдер. Вы также можете быть заинтересованы в моем ответе о customizing the JScrollPane, используя Nimbus Look and Feel с полным примером кода.

0

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

Или вы можете подклассифицировать JPanel и упаковать в него два виджета внутри; однако для этой техники потребуется шаблон посредника, чтобы поддерживать отображение двух виджета синхронно с одной общей BoundedRangeModel.

Посмотрите на документацию старого Sun о создании пользовательских виджетов и используйте исходный код для JSlider в качестве отправной точки. Это не так сложно, как может показаться; однако, это займет некоторое время, чтобы получить его «в самый раз».