當我JCheckboxes或JScrollPane中(施加到保持所有其它部分中,以便產生一個可滾動窗口中的主要成分)一起使用與使用故障重繪(使用自定義的背景色時擺動部件)
component.setBackground(new Color(R, G, B, A));
部件
來定義它們的背景顏色,我得到一些討厭的重繪()問題。將鼠標懸停在JCheckboxes上將激活MouseListener,並且JCheckbox的背景將突然顯示窗口的隨機其他部分。即使將鼠標從JCheckbox中取出,此操作仍然存在。
問題使用
JCheckbox.setRollOverEnabled(false);
但時選擇複選框時仍然會出現消失!
該滾動窗格也不能正確重繪。只有當可見框架外部的部件回到框架時,纔會在滾動方向上連續多次繪製。當程序崩潰時,它看起來類似於Windows操作系統上的錯誤,您可以在屏幕上「畫」窗口,因爲它每次移動它時都會「生成」一個新窗口(http://i.stack.imgur.com/L5G5Q.png)。
最有趣的部分是,當我使用
Color.grey (or any other pre-generated color)
時不選擇自定義背景色,在所有它也消失了問題完全消失。
那麼在這裏隱藏的revalidate()和repaint()有什麼問題嗎?自Color.AnyColor起作用以來,是否使用RGBA是一個問題,特別是A(=不透明度)部分?
非常感謝!就在我檢查你的答案之前,我可以確認它。將不透明度設置爲最大值(255)將徹底解決此問題。 – ChrisK