#java #swing #button #menu
#java #swing #кнопка #меню
Вопрос:
Прежде всего, существует ли «официальное» название для таких пунктов меню, как Edit и Zoom в браузере Chrome?
Существует ли существующая реализация Swing?
На первый взгляд это может быть еще одна вещь типа «я могу сделать это в выходные», но заставить кнопку хорошо выглядеть для всех LAFs было бы сложно, как всегда, поскольку кнопка по умолчанию, очевидно, слишком «квадратная» для этих «встроенных» кнопок (и «spinner lite» для масштабирования). И правильное выравнивание текста / ускорителя может быть практически невозможным.
Комментарии:
1. Браузер Chrome? О каких элементах вы говорите? Создание кнопок, которые работают со всеми LAFS, не должно быть проблемой. Можете ли вы расширить свой вопрос?
2. Смотрите также, как написать пользовательский компонент Swing .
3. @jzd: да, браузер. Вопрос обновлен. Я спрашиваю, выполнил ли кто-нибудь уже работу (напишите пользовательский JMenuItem), которую я слишком ленив, чтобы делать.
Ответ №1:
Я думаю, вы, возможно, упускаете смысл LAF. Если внешний вид содержит квадратные кнопки, вы должны позволить ему определять границы и внешний вид кнопки. Единственный способ, которым вы можете позволить чему-то работать для всех видов, — это не путаться с настройками по умолчанию.
Однако, если вы хотите, чтобы что-то выглядело определенным образом, вам нужно будет создать пользовательский компонент, который, возможно, использует цвета по умолчанию для меню или кнопки или предустановленные значения.
Комментарии:
1. Он говорил о том, что кнопки, предоставляемые LAF, предназначены для того, чтобы хорошо выглядеть на поверхности диалогового окна, а не на пункте меню.
2. @Random832: спасибо, что высказали мое мнение. Да, легко заменить границу кнопки по умолчанию, но все еще нетривиально (например, закругленные углы только для первой и последней кнопок), и вам могут понадобиться немного другие границы для разных LAF (я не знаю, как Chrome выглядит на других ОС, кроме Windows XP).
Ответ №2:
Здесь есть частичная реализация Swing:
http://code.google.com/p/jbuttonmenuitem/
Он может обрабатывать пункты меню редактирования, но, вероятно, не масштабирование.