applet e double buffering  XML
Índice dos Fóruns » Interface Gráfica
Autor Mensagem
Guilherme Silveira
Administrador

Membro desde: 14/08/2002 10:09:26
Mensagens: 1096
Localização: Sao Paulo
Offline

Uma vez li em algum lugar que a partir da versao 1.x do java (x <= 4), tudo que extendia de JFrame ja vinha com double buffering automatico....

Pois o double buffering deveria manter o que pintei mesmo apos um ALT+TAB no windows, por exemplo.

O problema eh que tenho um Canvas muito trabalhoso: http://www.linux.ime.usp.br/~gas/iniciacao/parte1.html e desenhar esse canvas nao eh tao rapido.

Existe mesmo algo como setDoubleBuffering(true) (ja tentei coisas parecidas) ou o jeito eh implementar o mesmo na memoria?

Abraco

Guilherme Silveira

-------------------------------------------------------
Guilherme Silveirahttp://blog.caelum.com.br
[Email] [WWW] [MSN]
Hempx
JavaEvangelist
[Avatar]

Membro desde: 18/04/2003 03:42:08
Mensagens: 356
Localização: Belo Horizonte
Offline

Olhe o tutorial do java2D. Tinha lido um texto muito bom a respeito. Não sei se foi na JavaMagazine ou alguma pagina na internet. Qd chegar em casa vou dar uma olhada se acho para voce.
[MSN] [ICQ]
Guilherme Silveira
Administrador

Membro desde: 14/08/2002 10:09:26
Mensagens: 1096
Localização: Sao Paulo
Offline

perfeito

O problema: Canvas nao eh Swing........ e eu extendo nossa belissima java.awt.Canvas.. .se fosse Swing ja teria o double buffering automaticamente.....

Implementar o DB eu sei, o problema eh nao querer implementar ele E nao querer usar mais herancao do que ja existe no swing/awt para facilitar o processo

Sugestao? Se achar o artigo, da um toque

Obrigado

-------------------------------------------------------
Guilherme Silveirahttp://blog.caelum.com.br
[Email] [WWW] [MSN]
Luca
Moderador
[Avatar]

Membro desde: 06/09/2002 14:30:10
Mensagens: 5810
Localização: São Paulo/SP ou Paraty/RJ
Offline

Olá

Canvas tem o método public void createBufferStrategy(int numBuffers)
Se não servir talvez haja outro modo de fazer:

Com swing quase todos os componentes tem double buffering ON por default. Se você tivesse um componente do tipo JPanel ou JComponent poderia usar o método setDoubleBuffered(true ou false). Mas isto não é seu caso.

Quando a gente quer dominar o double buffering de forma global (como na impressão por exemplo) a gente usa a classe javax.swing.RepaintManager
(This class manages repaint requests, allowing the number of repaints to be minimized, for example by collapsing multiple requests into a single repaint for members of a component tree. )

Ela tem o seguinte método:

Canvas não é swing mas é um Component. Então talvez se possa fazer:

[]s
Luca

This message was edited 2 times. Last update was at 13/12/2004 14:24:19


Dare Obasanjo (Program Manager at Microsoft)
"The folks I know from across the industry who have to build large scale Web services on the Web today at Google, Yahoo!, Facebook, Windows Live, Amazon, etc are using RESTful Web services. The only times I encounter someone with good things to say about WS-* is if it is their job to pimp these technologies or they have already "invested" in WS-* and want to defend that investment."


CEP, JMS, JMX e coisas afins (ou não)
http://lucabastos.blogspot.com/
[Email] [WWW]
Guilherme Silveira
Administrador

Membro desde: 14/08/2002 10:09:26
Mensagens: 1096
Localização: Sao Paulo
Offline

Hmmmm,.... vou tentar as duas solucoes (mas ja tentei o primeiro faz tempo, sem muito sucesso)

Obrigadao

-------------------------------------------------------
Guilherme Silveirahttp://blog.caelum.com.br
[Email] [WWW] [MSN]
 
Índice dos Fóruns » Interface Gráfica
Ir para:   
Powered by JForum 2.1.8 © JForum Team