Problema com mouseListener

ola alguem sabe o pq quando tenho um mouseListener dentro de um
paintComponent de um JPanel na no evento de pressionar o mouse mesmo que eu de um clique pq ele executa a função mais de uma vez?

Como assim?

Você está chamando algum método de MouseListener dentro do paintComponent?

Se for isso é porque o componentes está sendo desenhado mais de uma vez.

sim estou chamando dentro do paintComponenet um mouseListener com o metodo mousePressed mas não entendo pq ele chama o metodo mais vezes quando dou apenas 1 clique

O paintComponent é chamado sempre que:

  1. Uma janela entra e sai da frente de sua aplicação java. Nesse caso, ele é chamado para repintar a janela anterior.

  2. Algum componente muda de estado (por exemplo, um label de botão muda, o form é redimensionado, etc.);

  3. Houve uma chamada direta ao método repaint(), invalidate(), validate() ou qualquer coisa que force a VM a redesenhar seu formulário;

  4. Houve um pedido expresso do SO para que a tela seja redesenhada.

O durante o click altera-se o estado do objeto (item #2), pois é necessário desenhar o botão abaixado e levantado novamente. Isso deve explicar pq o seu método é chamado várias vezes. Via de regra, em paintComponent você deve somente redesenhar seu objeto, ainda tomando o cuidado para não alterar o estado do objeto Graphics, recebido no parâmetro.

Geralmente, o java não chama o paintComponent de todos os objetos num Frame. Ele procura restringir a somente os objetos necessários. Entretanto, objetos que não são opacos causam atualização nos objetos abaixo dele, caso sejam alterados. Por exemplo, se você alterar um texto de um JLabel que tem a propriedade setOpaque(false), o painel onde a label está desenhada também terá que ser repintado.

no meu caso nao é um clique no botao… e um clique na tela onde esta o JPanel e uma aplicação para desenhos… mas quando se clica na tela ele entra diversas vezes no metodo de clique… e este mouseListener encontra-se dentro do paintComponent.

Tem como anexar o código?