Java/Swing Volume Slider

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

С точки зрения "хороших" ползунков громкости - я смотрю на что-то вроде VLC:

VLC регулятор громкости

Есть ли (бесплатный) компонент, подобный этому, который я уже пропустил?

2 ответа

Решение

У Джаспера Поттса есть хороший пост в блоге о том, как вы можете сделать скин для слайдера, используя Nimbus Look and Feel: Скиннинг слайдера с помощью Nimbus.

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

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

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

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

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

Другие вопросы по тегам