Нужна помощь в понимании влияния двух системных свойств, связанных с Java - PullRequest
3 голосов
/ 18 марта 2010

У меня была проблема, связанная с смешением легких и тяжелых компонентов в Java.

Странный свинг в супертяжелом и легком смешивании

Решение, которое мне было предложено (вне стекового потока), состояло в том, чтобы установить системные свойства sun.awt.noerasebackground и sun.java2d.noddraw в true.

Я хочу знать, какая сторона может повлиять на это изменение в моем Java-приложении на основе свинга (которое работает в WinXP и имеет много компонентов свинга).

Какие проблемы могут возникнуть? Может ли это повлиять на производительность? Может ли какая-то другая вещь перестать работать?

Спасибо, Йоав

1 Ответ

2 голосов
/ 23 февраля 2011

Компоненты AWT заполняют свой фон каждый раз, когда перекрашивают. Если вы установите для свойства sun.awt.noerasebackground значение true, то, что было отображено в настоящий момент, остается до тех пор, пока новое содержимое не будет отображено в графическом контексте. Как правило, это повышает производительность и уменьшает мерцание, а также не приводит к появлению артефактов рисования, если компонент AWT полностью закрашен.

"sun.java2d.noddraw" деактивирует прямую ничью. Это помогает, когда драйверы вызывают проблемы, но может снизить производительность.

...