JFrame перестает показывать контент, когда для JFrame.setType установлено значение Type.POPUP

У меня есть небольшой JFrame, который не должен отображаться на панели задач и который не должен быть украшен. Я добился этого с помощью этого кода, но фрейм не отображает никакого контента.

super();
instance = this;
instance.setUndecorated(true);
instance.setType(JFrame.Type.POPUP);

Когда я заменяю

instance.setType(JFrame.Type.POPUP); с

instance.setType(JFrame.Type.UTILITY);

он снова показывает содержимое, а также показывает фрейм на панели задач.

Заранее спасибо! Саймон

1 ответ

Решение

Если вы хотите, чтобы ваш кадр был неокрашенным, а не видимым на рабочем столе, вы можете использовать JWindow. Он имеет все функциональные возможности, аналогичные JFrame так что замени JFrame с JWindow

JWindow - это контейнер, который может отображаться в любом месте на рабочем столе пользователя. У него нет строки заголовка, кнопок управления окном или других элементов, связанных с JFrame, но он все еще является "первоклассным гражданином" рабочего стола пользователя и может существовать где угодно на нем.

Пример кода JWindow

   JWindow window = new JWindow();
    window.add(new JButton("test"));
    window.setSize(500, 500);
    window.setLocationRelativeTo(null);
    window.setVisible(true);
Другие вопросы по тегам