Странный свинг в тяжелом и легком смешивании - PullRequest
3 голосов
/ 17 марта 2010

У нас есть проблема в нашем приложении на основе свинга, так как мы обновили нашу версию Java с 6u5 до 6u18 (приложение работает под WinXP).

Наше приложение содержит объект Canvas, который находится в JFrame. Приложение рисует вещи на холсте.

Каждый раз, когда мы перетаскиваем легкий объект качания (всплывающее окно или другой кадр) на холст, возникает проблема обновления. Мигает - становится черным Проблема решается только после того, как мы отодвинем компонент свинга от холста и снова нажмем на него.

Мы думаем, что эта проблема связана с тем, что холст является тяжеловесным объектом. И мы знаем, что в новых версиях java были внесены изменения, связанные с смешиванием проблемы тяжелых и легких объектов.

Еще несколько деталей: 1) Наша проблема воспроизводится в Java 6u14 и 6u16. 2) Все отлично работает в Java 6u5.

Еще одна странная вещь: У нас есть 2 типа станций, на которых работает наше приложение. Первый тип имеет видеокарту ATI FireGL7100 PCI-E. Второй тип имеет графическую карту Matrox G450 PCI. Проблема не воспроизводится на станции Matrox в любой версии Java.

Еще одна вещь: http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6829858 - похоже на нашу проблему.

Наша проблема знакома? Есть ли у вас какие-либо предложения (обходные пути, идеи, как разница в видеокартах связана с этой проблемой)

Надеюсь, я был достаточно ясен, Йоав

Ответы [ 3 ]

4 голосов
/ 17 марта 2010

Статья Смешивание тяжелых и легких компонентов описывает, как поддержка этого изменилась в обновлении 12 JDK 6. Две видеокарты могут обрабатывать Z-порядок по-разному. Есть ли шанс, что в вашем коде есть обходной путь, который больше не нужен?

2 голосов
/ 18 марта 2010

Я не знаю, относится ли это к кому-либо еще, но мы нашли обходной путь / решение для нашей проблемы.

Мы установили для системных свойств sun.awt.noerasebackground и sun.java2d.noddraw значение true. Это устранило нашу проблему.

Единственная проблема заключается в том, что я не уверен, какие другие проблемы могут возникнуть при установке этих системных свойств.

2 голосов
/ 17 марта 2010

У нас были проблемы с микшированием HW / LW от 6u14 + (исправления, которые ломают все, в 14).Наша проблема заключалась в библиотеке третьей части (JIDE), и они закончили с ее решением.

Мое предложение - избегать HW, где только можно.Вы можете получить очень приличную производительность от LW, если все сделано правильно.Что вы рисуете, что должно быть HW?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...