Aplicatvo Simulador de Circuitos

Olá pessoal,

minha turma da faculdade está criando um aplicativo que simula a criação de circuitos elétricos,
com fio, capacitor, diodo, gerador e algumas coisas mais. Não entraremos no mérito dos cálculos
aqui. Nosso problema está no desenho do circuito. Estou utilizando, por enquanto, um canvas
para desenhar usando drawLine, drawImage(para símbolos de gerador, transistor, etc).
O problema é a manutenção dos desenhos no canvas e a identificação deles depois. Não consigo
mantê-los desenhados quando inicia outro processo de desenho. Estou usando o evento de arrastar
do mouse para desenhar uma linha, do ponto inicial ao atual. No mouseReleased eu gero um objeto
que aramazena os pontos extremos da linha e jogo numa lista, redesenhando tudo o que está na lista
a cada movimento. Isso deixa a tela piscando, é horrível. Qual a solução para manter os componentes
desenhados sem piscar (redesenhar tudo)? O outro ponto é identificar componentes já desenhados.
Passando o mouse por cima de uma linbha gerada com drawLine tem como identificá-la?

Obrigado.

procure por

Double Buffer