Java: большое всплывающее меню с дополнительными панелями - PullRequest
1 голос
/ 23 января 2011

Я хочу создать всплывающее меню, содержащее несколько «больших» (специальных) элементов.

Эти «большие» элементы должны как-то вести себя как подменю, но это большие панели (с кнопками, метками,поля со списком и т. д.).Все эти панели должны появляться, когда мышь находится над (или нажимается на) соответствующими элементами меню, и все они должны появляться в одной и той же области экрана рядом с всплывающим меню, под элементом верхнего элемента, не выровненным по соответствующему элементу).,Последний выбранный из них может оставаться видимым до тех пор, пока отображается всплывающее окно.

В основном , я считаю, что это похоже на (A) помещение JLayeredPane рядом свсплывающее меню и переключение слоев в соответствии с некоторыми событиями мыши.Вероятно, для этого потребуется подделать все всплывающее меню, используя одну большую JPanel внутри JPopupMenu, имеющую только эту одну запись (т.е. также все «обычные» пункты меню на самом деле должны быть кнопками).

Итак, с другой стороны (B), вероятно, более разумно использовать стандартные элементы подменю свинга , добавить большие панели в качестве элементов подменю, а затем переместить все элементы подменю в то же место иразмер.Хотя я не уверен, сработает ли это, и будут ли такие проблемы, как мгновенное скрытие меню, как только пользователь щелкнет поле со списком внутри одной из больших панелей.

Вы бы порекомендовали перейти наили (A) или (B) - или, возможно, (C)?

Есть ли какие-либо опыт / известные подводные камни, делающие такие вещи?

С уважением, Филипп

1 Ответ

0 голосов
/ 23 января 2011

У меня нет опыта работы с A или B, но между двумя я бы сначала попробовал B.

Другой вариант, который может быть лучше, - это использовать JDialog.Установите, чтобы быть неукрашенным и скрыть это, когда это теряет фокус.(Это может быть более простой способ сделать A).

...