Как переместить JPopup на Glasspane - PullRequest
3 голосов
/ 29 января 2011

Я помещаю компонент со списком на стеклянную панель, чтобы пользователи могли выбирать из списка элементов. Если щелкнуть раскрывающийся список, хотя JPopupMenu скрыто за другими частями компонента на стеклянной панели, поскольку всплывающие окна отображаются на LayeredPane.

Я хотел бы узнать, как сделать всплывающее окно на стекле с компонентом. Я пробовал JPopupMenu.setDefaultLightWeightPopupEnabled (false) до инициализации фрейма, но кажется, что всплывающее окно вообще нигде не отображается, и я не уверен, почему.

Будет полезен любой совет о том, как заставить всплывающее окно отображаться на стеклянной панели вместо jlayeredpane. Я искал, но большинство ответов, по-видимому, связано с опусканием событий, зафиксированных на стекле.

Я на самом деле использую JideAutoCompletionComboBox , который расширяет JComboBox.

Правка для вопроса: у меня есть система всплывающих окон (у моего приложения есть куча рабочих пространств на вкладках). Я хотел бы не использовать модальное диалоговое окно для этого, а просто использовать стеклянную панель. Компонент в основном предназначен для создания сообщения, но одним из подкомпонентов является комбинированный список. Фактически вы можете рассматривать весь компонент как всплывающее окно, но используя стеклянную панель.

1 Ответ

3 голосов
/ 29 января 2011

Мне не нравятся маленькие плавающие окна, которые пользователи могут испортить, нажимая вокруг.

JDialog dialog = new JDialog(...);
dialog.setUndecorated(true);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...