2010-03-17 101 views
3

因爲我們已經將我們的Java版本從6u5升級到6u18(該應用程序通過WinXP運行),所以我們在基於swing的應用程序中遇到問題。奇怪的搖擺重量級和輕量級混合問題

我們的應用程序包含一個駐留在JFrame中的Canvas對象。應用程序在畫布上繪製東西。

每當我們在畫布上拖動一個輕量級的swing對象(彈出窗口或其他框架)時,它就會有刷新問題。 眨眼 - 變黑。該問題僅在我們將擺動組件從畫布上移開並再次單擊後才能解決。

我們認爲這個問題與畫布是重量級物體的事實有關。 而且我們知道在重量級和輕量級對象的混合問題上,新版本的java已經發生了變化。

一些更多的細節: 1)我們的問題在java 6u14和6u16中重現。 2)一切工作正常在Java 6u5。

另一個奇怪的事情: 我們有兩種類型的站運行我們的應用程序。 第一種類型有ATI FireGL7100 PCI-E圖形卡。第二種是Matrox G450 PCI圖形卡。 問題在任何Java版本的Matrox基站上都不會重現。

還有一件事: http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6829858 - 看起來類似於我們的問題。

我們的問題很熟悉嗎? 你有什麼建議(解決方法,理念在顯卡方面的差別是如何連接到這個問題)

希望我很清楚, 約阿夫

回答

2

我們有問題瓦特/ HW/LW從6u14 +混合(修補程序打破了一切都在14)。我們的問題出現在第三方圖書館(JIDE),他們最終解決了問題。

我的建議是儘可能避免硬件。如果完成對比,你可以從LW中獲得非常不錯的表現。你在畫什麼需要成爲HW?

2

我不知道這是否與其他人有關,但我們已經找到了解決方法/解決方案。

我們已經將系統屬性sun.awt.noerasebackground和sun.java2d.noddraw都設置爲true。這消除了我們的問題。

唯一的問題是,我不確定設置這些系統屬性可能會產生哪些其他問題。