AWTUtilities setWindowOpaque вызывает проблемы

У меня модал JDialog что я установил непрозрачный с вызовом com.sun.awt.AWTUtilities метод, setWindowOpaque(this, false),

У меня возникают проблемы при установке модального JDialog быть непрозрачным. Например, когда я нажимаю на кнопку в непрозрачном диалоговом окне, оно появляется правильно, но после нескольких открытий и закрытий диалогового окна оно открывается. Это не видно; и, поскольку он модальный, мы не можем нажать на кнопку, расположенную на родительской панели. Это как будто заморожено, но это только из-за модального диалога.

Если я уберу вызов метода setWindowOpaque(this, false) работает без проблем.

Кто-нибудь знает что происходит?

Я использую версию Java "1.6.0_26" в Windows XP.

Благодарю.

1 ответ

Хорошо, была похожая проблема, иногда окно не отвечало, или прозрачность нарушалась... странные проблемы.

Решение, по крайней мере, для меня, звонило new TransparentWindow() внутри invokeLater:

SwingUtilities.invokeLater(new Runnable() {
    @Override
    public void run() {
        TransparentWindow w = new TransparentWindow();
        w.setVisible(true);
    }
});

TransparentWindow - это класс, расширяющий JWindow, который использует com.sun.awt.AWTUtilities.setWindowOpaque(window,false); создать прозрачное окно с закругленными прозрачными углами, как описано здесь: мягкое обрезание и прозрачность на пиксель для окон Swing

Другие вопросы по тегам