Panel sobre Panel

4 respostas
J

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!

4 Respostas

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.

J

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.

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?

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

J

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

Puts…não sei como nao vi este metodo, muito obrigado!

Criado 10 de agosto de 2011
Ultima resposta 10 de ago. de 2011
Respostas 4
Participantes 2