Я использую объект JWindow в своем приложении Java для имитации выпадающего меню мыши. Когда пользователь перебирает JLabel, окно появляется и остается до тех пор, пока мышь не выйдет ни на ярлык, ни на вновь видимое окно. Моя проблема в том, что каждый раз, когда пользователь выполняет это действие, появляется новая запись в панели задач в нижней части экрана без названия или значка и исчезает, как только в окне вызывается setVisible (false).Solaris 5.10: Как скрыть кнопку JWindow на панели задач?
Я попытался переключиться на неразделенный JDialog, и это исправило проблему с моей задачей, но представило новую. Когда setVisible (true) вызывается в JDialog, фокус убирается из моего кадра. Цвет строки заголовка изменится, чтобы указать на это, что выглядит непрофессионально.
Использование непараметризованный JFrame, оба вышеуказанных проблем произошли
Я не хочу использовать JInternalFrame, как это потребовало бы полный редизайн моего интерфейса (переключение на структуру JDesktopPane), и я не требую любая другая функциональность JInternalFrame.
Любые идеи?
Спасибо, похоже, стоит посмотреть. Тем не менее, я уже выполнил всю работу по всплывающему поведению и просто хочу решить небольшую проблему в исходном вопросе (если это возможно). Мне нужно получить выпуск для этого приложения на следующий день или два, и сейчас нужно отложить рефакторинг. – 2009-08-27 13:22:41
@Dan: Посмотрите мои последние изменения. Использование Popup напрямую позволит вам сэкономить некоторое рефакторинг, поскольку вы можете просто «ввести» ваш JWindow в Popup. Вам все равно нужно указывать, когда/где будет всплывать всплывающее окно, но это довольно просто (согласно моему первоначальному примеру). – Adamski