|
Модераторы: LSD, AntonSaburov |
|
carper |
|
|||
Бывалый Профиль Группа: Участник Сообщений: 227 Регистрация: 2.3.2005 Репутация: 4 Всего: 8 |
Используется JavaFx 2.1
Есть ли какой-то способ сделать так, чтобы одни пункты(Menu) главного меню (MenuBar) выравнивались по левому краю, а другие по правому:
Код выше приводит к тому, что пункты главного меню (menuBar): "about" и "File", будут распологаться рядом, в левой части меню: ---------------------------------------------------------------------------------------------------- about File ---------------------------------------------------------------------------------------------------- Я же хочу, чтобы они были в разных концах: ---------------------------------------------------------------------------------------------------- about File ---------------------------------------------------------------------------------------------------- Что пытался делать: 1. Создавал 2-а MenuBar и распологал их в HBox нужным образом. Это дает желаемый эффект, но нарушает работу с клавиатурой, например, нет перехода по tab между пунктами меню, принадлежащим к разным MenuBar (т.е. от "about" к "File" не попасть по tab ), также F10 действует только на активацию последнего добавленного MenuBar. 2. Пытался вставить пустой пункт меню - но, это, во-первых, не дает истинного выравнивания (т.к. приходится задавать размеры вручную и они теряют смысл при масштабировании - например, при увеличении окна правый пункт перестает прижиматься к правой границе окна), во-вторых, при попытке уменьшить окно, остальные пункты "пропадают", т.е. появляются многоточия. Кто нибудь знает, как средствами JavaFx получить нужный мне эффект? P.S. метод setHgrow не работает с Menu |
|||
|
||||
Amp |
|
|||
Опытный Профиль Группа: Участник Сообщений: 886 Регистрация: 17.2.2009 Репутация: нет Всего: 17 |
Со стандартным MenuBar скорее всего никак. Если интересно, то можешь глянуть в исходники jfxrt (конкретно в файл MenuBarSkin.java). Там перебираются все меню, перепаковываются в MenuBarButton, переназначаются листенеры и кладутся в HBox.
|
|||
|
||||
carper |
|
|||
Бывалый Профиль Группа: Участник Сообщений: 227 Регистрация: 2.3.2005 Репутация: 4 Всего: 8 |
Жаль :( Написать кастомный menubar дело не очень хитрое, просто хотелось надеяться на то, что JavaFX учла ошибки Swing и заточилась на полноценный пользовательский GUI "из коробки" :( Да и проверять работает ли кастомный компонент после очередного обновления JavaFX оооочень не хочется. P.S. А то отражения там всякие подобавляли, а стандартные кнопки - уродство страшное (по крайней мере под Windows это "нечто с синим ободком" заставило немедленно создать свой CSS - работы на час, но почему этого не сделано сразу?), сменить HotKey для вызова главного меню с F10 отдельная забава, даже просто сделать так чтобы главное меню отображалось по-умолчанию развернутым по верху Stage не удосужились - изволь сам вызывать отдельный метод, кому помешали glue из Swing тоже не ясно - да можно создать самому похожий эффект, но через одно место... |
|||
|
||||
Amp |
|
|||
Опытный Профиль Группа: Участник Сообщений: 886 Регистрация: 17.2.2009 Репутация: нет Всего: 17 |
JavaFX пока не заточилась под пользовательский UI, ей еще развиваться. Контролы появились сравнительно недавно - в первых версиях их вообще не было, так что можно радоваться просто тому факту, что они есть и их можно кастомизировать
Сам не так давно писал CSS для более-менее симпатичных кнопок: недокументированные свойства, неудобная документация и неприятное поведение в мелочах оставили осадок. Но для домашних поделок в принципе подходит и я доволен. Надеюсь, что Java 8 даст дополнительный толчок для развития JavaFX (помимо JavaFX 3D) и расширения комьюнити. |
|||
|
||||
carper |
|
|||
Бывалый Профиль Группа: Участник Сообщений: 227 Регистрация: 2.3.2005 Репутация: 4 Всего: 8 |
Даже не знаю, уж очень JAVA community легко увлекается модными штучками, типа HTML5, забрасывая все остальное. :( По уму, для создания полноценного GUI на основе того, что уже есть в JavaFX, надо тройку месяцев работы команды, включая тесты, документацию и т.п. Там по сути ничего низкоуровневого, нужного для коммерческого GUI, не осталось - часть работы, типа красивых тем, или нормального меню, вообще можно как лабораторку давать студентам. То, что это все еще не сделано, навевает грустные мысли ... Чтобы не оффтопить - можно ли одному и тому же пункту меню назначить несколько Action (честно говоря, я уже это быстренько сделал через простейшую имплементацию EventHandler<ActionEvent>, поленившись чиать доки, - через механизм подписки на события, но что-то мне не верится, что это нельзя сделать стандратно)? |
|||
|
||||
Amp |
|
|||
Опытный Профиль Группа: Участник Сообщений: 886 Регистрация: 17.2.2009 Репутация: нет Всего: 17 |
Через несколько вызовов addEventHandler(ActionEvent.ACTION, ...) и передачи туда EventHandler<ActionEvent>.
|
|||
|
||||
carper |
|
|||
Бывалый Профиль Группа: Участник Сообщений: 227 Регистрация: 2.3.2005 Репутация: 4 Всего: 8 |
||||
|
||||
Правила форума "Java" | |
|
Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, jk1. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Java: GUI и Java FX приложения | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |