2010-03-18 10 views
3

J'ai eu un problème avec un mélange de composants légers et lourds en java.J'ai besoin d'aide pour comprendre l'effet de deux propriétés système liées à java-gui

Weird swing heavyweight & lightweight mixing problem

Une solution qui m'a été suggéré (en dehors stackoverflow) était de définir les propriétés du système sun.awt.noerasebackground et sun.java2d.noddraw true. Je veux savoir quel effet cette modification pourrait avoir sur mon application Java basée sur Swing (qui fonctionne sous WinXP et qui a de nombreux composants swing).

Quels types de problèmes peuvent survenir? Pourrait-il y avoir un effet sur les performances? Une autre chose pourrait-elle cesser de fonctionner?

Merci, Yoav

Répondre

2

composants AWT remplissent leur fond à chaque fois qu'ils repeindre. Si vous définissez la propriété "sun.awt.noerasebackground" sur true, ce qui était affiché reste jusqu'à ce que le nouveau contenu soit dessiné dans le contexte graphique. Cela améliore généralement les performances et réduit le scintillement, et ne provoque pas d'artefacts de peinture si le composant AWT est entièrement peint.

"sun.java2d.noddraw" désactive le tirage direct. Cela aide lorsque les pilotes causent des problèmes mais peuvent réduire les performances.