2010-03-17 6 views
3

우리는 자바 버전을 6u5에서 6u18로 업그레이드 했으므로 스윙 기반 애플리케이션에 문제가 있습니다 (애플리케이션이 WinXP를 통해 실행 됨).이상한 스윙 헤비급 및 경량 혼합 문제

우리의 응용 프로그램에는 JFrame에있는 Canvas 객체가 있습니다. 응용 프로그램은 캔버스에 물건을 그립니다.

가벼운 스윙 개체 (팝업 또는 다른 프레임)를 캔버스 위로 드래그 할 때마다 새로 고침 문제가 발생합니다. 깜박임 - 검은 색이됩니다. 스윙 구성 요소를 캔버스에서 멀리 이동하고 다시 클릭하면 문제가 해결됩니다.

이 문제는 캔버스가 중량급 개체라는 사실과 관련이 있다고 생각합니다. 그리고 헤비급과 가벼운 객체가 섞이도 록 자바의 새 버전에서 변경된 사항이 있다는 것을 알고 있습니다.

몇 가지 추가 정보 : 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 - 우리의 문제와 비슷합니다.

우리의 문제는 친숙합니까? 당신이 어떤 제안 (해결 방법, 그래픽 카드의 차이가이 문제에 어떻게 연결되어 있는지 아이디어) 내가 충분히 분명했다

희망, 아브가 있습니까

답변

4

문서는 JDK 6 업데이트 12에서이 변경 사항이 어떻게 변경되었는지 설명합니다. 두 비디오 카드는 Z 순서를 다르게 처리 할 수 ​​있습니다. 코드에 더 이상 필요없는 해결 방법이있을 수 있습니다.

2

우리했다/HW/LW는 6u14의 +에서 혼합 w 문제 (모든 것을 망가 뜨리는 수정 프로그램은 14에 있습니다. 우리 문제는 세 번째 부분 라이브러리 (JIDE)에 있었고 결국 문제가 끝나기까지했습니다.

내 제안은 혹시 할 수있는 곳의 HW를 피합니다. 충실하면 LW에서 매우 훌륭한 성능을 얻을 수 있습니다. HW가 될 필요가있는 그림은 무엇입니까?

2

이 내용이 다른 사람에게 관련이 있는지는 잘 모르겠지만 문제에 대한 해결 방법/수정 사항을 발견했습니다.

우리는 시스템 등록 정보 sun.awt.noerasebackground와 sun.java2d.noddraw를 모두 true로 설정했습니다. 그것은 우리의 문제를 제거했습니다.

유일한 문제는 그 시스템 속성 설정으로 인해 다른 문제가 발생할 수 있는지 잘 모르겠다는 것입니다.