Olá A todos!
Tenho um panel que tem um repaint meio pesado devido a quantidade de elementos desenhados nele, porém preciso fazer algumas interacoes com o mouse (desenhar retangulos de selecao e etc). Gostaria de saber se é possível colocar um outro panel “transparente” por cima deste para que eu nao precisar ficar dando repaint o tempo todo.
Muito Obrigado!
Um painel transparente dispara repaints igualmente.
Se o que você tem desenhado não muda, o melhor mesmo é desenhar numa BufferedImage, do tamanho do painel, e então repintar a imagem.
Caso contrário, seria interessante você tratar o repaint para passar que área deve ser repintada, e então alterar seu método de pintura para não processar o que não precisa.
[quote=ViniGodoy]Um painel transparente dispara repaints igualmente.
Se o que você tem desenhado não muda, o melhor mesmo é desenhar numa BufferedImage, do tamanho do painel, e então repintar a imagem.
Caso contrário, seria interessante você tratar o repaint para passar que área deve ser repintada, e então alterar seu método de pintura para não processar o que não precisa.[/quote]
Olá vini!
Muito obrigada pela resposta!
Mas ainda estou com dúvidas, no meu paint eu devo desenhar todos os componentes do meu panel certo? mesmo que eu utilize o mesmo objeto ainda devo desenhá-lo. Como eu poderia fazer para que o meu repaint pintasse apenas a area que foi alterada então?
Note que existe um método repaint que passa para o Java a “dirty region” (ver Javadoc).
O Java usa esse método sempre que a janela é obstruida. Use também o RepaintManager, para controlar a pintura numa área menor que a tela inteira:
http://java.sun.com/products/jfc/tsc/articles/painting/#mgr
[quote=ViniGodoy]Note que existe um método repaint que passa para o Java a “dirty region” (ver Javadoc).
O Java usa esse método sempre que a janela é obstruida. Use também o RepaintManager, para controlar a pintura numa área menor que a tela inteira:
http://java.sun.com/products/jfc/tsc/articles/painting/#mgr[/quote]
Puts…não sei como nao vi este metodo, muito obrigado!