Java/Swing Volume Slider
Часть моего приложения имеет медиа-компонент, и я ищу хороший слайдер громкости, который я могу использовать, а не JSlider, который выглядит немного уродливым для этой цели (или, в частности, неплохо было бы использовать расширенный JSlider с пользовательскими визуальными эффектами). Я мог бы написать один, но я действительно не хочу изобретать велосипед.
С точки зрения "хороших" ползунков громкости - я смотрю на что-то вроде VLC:
Есть ли (бесплатный) компонент, подобный этому, который я уже пропустил?
2 ответа
У Джаспера Поттса есть хороший пост в блоге о том, как вы можете сделать скин для слайдера, используя Nimbus Look and Feel: Скиннинг слайдера с помощью Nimbus.
Вот как это выглядит:
Следуя сообщению в блоге, не очень сложно создать свой собственный внешний вид на слайдере. Вас также может заинтересовать мой ответ о настройке JScrollPane с помощью Nimbus Look and Feel с примером полного кода.
Поскольку при нажатии на динамик вы захотите отключить звук, я предлагаю вам внедрить собственный JSlider и подключить его к внешнему виду; однако я также настоятельно рекомендую вам повторно использовать BoundedRangeModel, который реализует JSlider.
Или вы можете создать подкласс JPanel и упаковать в него два виджета; однако для этого метода потребуется шаблон-посредник, чтобы синхронизировать два отображения виджета с одним общим BoundedRangeModel.
Посмотрите на старую документацию Sun по созданию пользовательских виджетов и используйте исходный код JSlider в качестве отправной точки. Это не так сложно, как может показаться; Тем не менее, это займет некоторое время, чтобы сделать это "просто правильно".