2009-05-11 47 views
5

我正在處理一些Swing應用程序(當前運行在Java 1.6 update 11上),它有一些間歇性的刷新問題(例如存在工件等)。這隻發生在我們的應用程序的一些用戶而不是其他人。在Java 1.6中使用Java Swing應用程序繪畫的問題

經過一番研究,我發現將屬性sun.java2d.d3d設置爲false可能會有所幫助,事實上,它對我們的一個用戶有所幫助。

現在,其他一些用戶抱怨這個問題,我想爲所有用戶設置屬性爲false

我的基本問題如下:

究竟是什麼原因呢?它是視頻卡嗎?是司機嗎?這是Sun的錯誤嗎? (如http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6635462)三者的結合?

換句話說,最好是簡單地關掉這個屬性,還是隻影響某些顯示卡,在這些顯卡中,最新的驅動程序更新會修復?

+0

在VMWare內部運行Java時,經常會發生此問題。 – user3553031 2014-07-21 19:39:42

回答

2

在R6更新10中引入的Java是一種渲染基於Direct3D的圖形的管線。根據版本說明here,它僅支持NVidia和ATI卡,這意味着不使用這些卡的人可能會遇到問題。由於這是最近的創新,我建議任何使用這些卡的舊驅動程序的人也可能會遇到問題。升級視頻驅動程序可能會解決第一種情況,但不是最後一種情況。

如果將sun.java2d.d3d設置爲false,則可能發生的最壞情況是某些用戶無法達到理論上可以達到的性能。您必須權衡這是否比您目前看到的問題更可取。

+0

首先遇到問題的用戶有ATI Radeon XPress 200,但我沒有檢查他們是否有最新的驅動程序。 該應用程序是一個漂亮的「標準」Swing應用程序,即沒有3D操作或「不尋常」的繪畫操作。 – Avrom 2009-05-11 19:18:40

+0

有人會認爲它會自動關閉不支持的視頻卡,假設可能。 – Avrom 2009-05-11 19:21:02

1

在EDT上執行所有繪畫和模型更改操作(例如更改TableModel等)?