Pergunta

Eu estou trabalhando em uma aplicação Swing (atualmente em execução no Java 1.6 update 11), que tem alguns problemas intermitentes de atualização pintura (por exemplo, existem artefatos etc.). Isso só acontece com alguns usuários da nossa aplicação, mas não outros.

Depois de fazer algumas pesquisas, descobri que definir o sun.java2d.d3d propriedade para false pode ajudar e, de fato, ajudou para um de nossos usuários.

Agora que alguns outros usuários estão reclamando sobre a questão, estou a pensar em definir a propriedade para false para todos os usuários.

As minhas perguntas básicas são as seguintes:

O que exatamente é a causa disso? É a placa de vídeo? É o motorista? É um bug da Sun? (Tais como http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6635462) combinação dos três?

Em outras palavras, é o melhor é simplesmente transformar esta propriedade fora ou está afetando apenas determinadas placas de vídeo em que uma atualização para o driver mais recente fixaria?

Foi útil?

Solução

Java introduzido na atualização R6 10 de um gasoduto que processa gráficos com base em Direct3D. De acordo com a descrição liberação aqui ele suporta apenas NVidia e ATI, o que significa que alguém não usar esses cartões podem ter um problema. Uma vez que é uma inovação recente que eu gostaria de sugerir que qualquer pessoa usando drivers antigos para os cartões também podem ter problemas. Atualizando um driver de vídeo provavelmente irá resolver o primeiro caso, mas não o último.

Se você definir sun.java2d.d3d para false o pior que pode acontecer é que alguns usuários não vai alcançar o desempenho que teoricamente poderia. Você terá de equilibrar se isso é preferível as questões que você está vendo no momento.

Outras dicas

São todas as operações de pintura e modelo mudando executar em EDT (por exemplo, mudando TableModel etc.)?

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top