Question

Je travaille sur une application Swing (en cours d'exécution sur Java 1.6 mise à jour 11), qui a des problèmes de rafraîchissement de la peinture intermittente (par exemple, il y a des artefacts, etc.). Cela ne se produit à certains utilisateurs de notre application, mais pas d'autres.

Après avoir fait quelques recherches, je trouve que définir la propriété à sun.java2d.d3d peut aider et false en fait, il a aidé l'un de nos utilisateurs.

Maintenant que d'autres utilisateurs se plaignent de la question, je pense à définir la propriété à tous les utilisateurs pour <=>.

Mes questions fondamentales sont les suivantes:

Quelle est exactement la cause de cela? Est-ce la carte vidéo? Est-il le conducteur? Est-ce un bug de Sun? (Comme http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6635462) combinaison des trois?

En d'autres termes, est est préférable de simplement tourner cette propriété hors ou est-ce qui ne touche que certaines cartes vidéo dans lequel une mise à jour du dernier pilote fixerait?

Était-ce utile?

La solution

Java introduit dans la mise à jour R6 10 un pipeline qui rend graphiques basés sur Direct3D. Selon la description de libération ici il ne supporte que les cartes ATI et NVidia, ce qui signifie que toute personne de ne pas utiliser ces cartes peut avoir un problème. Comme il est une innovation récente, je suggère que toute personne utilisant les anciens pilotes pour ces cartes peuvent aussi avoir des problèmes. Mise à niveau d'un pilote vidéo sera probablement fixer le premier cas mais pas le dernier.

Si vous définissez sun.java2d.d3d false le pire qui puisse arriver est que certains utilisateurs ne réaliseront pas les performances qu'ils pourraient théoriquement. Vous devrez équilibrer si cela est préférable aux questions que vous voyez en ce moment.

Autres conseils

sont toutes opérations de peinture et changement de modèle exécutent sur EDT (par exemple le changement TableModel etc.)?

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top