我正在製作微波模擬程序,並有一個惱人的問題。我想讓微波爐觀察窗口在按下按鈕時改變顏色,以可視化微波開啓。但是,因爲我在背景中也有一個帶有圖標(食物圖像)的jlabel,所以我需要背景爲半透明。我已經完成了爲jPanel(cookingWindow)添加一個alpha值。Java - 在背景上的圖形故障repaint
它開始像這樣
所以我已經基本上完成了設置一個ActionEvent與下面的代碼的啓動按鈕。
cookingWindow.setBackground(new Color (250,234,1, 150)); cookingWindow.repaint();
這工作,但出現這種情況
當我最小化和最大化窗口,一切都回到地方。但顯然,如果您不必將窗口最小化,那將是更可取的。有關如何阻止這個視覺錯誤的任何想法?
感謝您的鏈接。迷惑我的部分是,當我最小化和最大化窗口時,它的工作原理也是我想要的。這是爲什麼? – user2773084
@ user2773084這將涉及組件的繪製順序 – MadProgrammer
@ user2773084,可能是因爲整個框架被重新繪製,所以所有的子組件都被繪製以便背景被正確地繪製。但是,當您更新標籤時,只有標籤因爲不透明而被重新繪製。 – camickr