簡體   English   中英

AWTUtilities setWindowOpaque導致問題

[英]AWTUtilities setWindowOpaque causing problems

我有一個模態JDialog ,我通過調用com.sun.awt.AWTUtilities方法setWindowOpaque(this, false)來設置不透明。

將模式JDialog設置為非透明時,會遇到問題。 例如,當我單擊一個不透明對話框的按鈕時,它會正確彈出,但是在打開和關閉對話框幾次之后,它確實會打開。 它不可見; 並且,由於它是模態的,因此我們無法單擊父面板中包含的按鈕。 就像它被凍結了一樣,但這僅是由於模態對話框。

如果我刪除對setWindowOpaque(this, false)方法的調用,則該方法可以正常工作。

有人知道發生了什么嗎?

我在Windows XP上使用Java版本“ 1.6.0_26”。

謝謝。

好的,有類似的問題,有時窗口沒有響應,或者透明性被破壞了……奇怪的問題。

解決方案,至少對我來說,是在invokeLater內部調用new TransparentWindow()

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

TransparentWindow是使用com.sun.awt.AWTUtilities.setWindowOpaque(window,false);擴展JWindow的類com.sun.awt.AWTUtilities.setWindowOpaque(window,false); 創建具有圓形透明角的透明窗口,如下所述: Swing窗口的軟裁剪和每像素半透明

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM