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