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.
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
java-lee
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).