Problemas com paint() e componentes Swing

3 respostas
P

Ola, estou com o seguinte problemas:

Tenho um JPanel e nele Componets (JButton’s…), até ai tudo bem, acontece que quero usar a api Graphics2D no mesmo panel p/ desenhar algumas coisas ai começam meus problemas…

Quando dou override na classe paint do meu JPanel ele simplesmente não renderiza nenhum Componente que está no meu JPanel, se limita apenas a desenha o especificado no método paint().

O engraçado é que por exemplo quando passo o mouse sobre uma área que tem um JButton ele aparece acho que por causa do listener.

Alguem se isso que estou tentando fazer é possível ? desenhar em um JPanel que possui componentes swing ??

Se sim, como posso fazer isso ?

Se não, que outra alternativa eu tenho ?

Brigadão.

3 Respostas

ateubh

cara, usa o netbeans que ele já faz todo esse tratamento para você.

:arrow: www.netbeans.org

bzanchet

Você não deve sobrescrever o método paint(Graphics G), mas sim o método paintComponent(Graphics G). E deve chamar o metodo sobrescrito, a menos que seu objeto seja totalmente opaco (super.paintComponent(g)).

Ta tudo lá naquela coisa chamada ‘documentação’ (incluindo o porquê e mais alguns detalhes): paint(Graphics g) e paintComponent(Graphics g).

P

Obrigado, vou ler com atenção a documentação.

O Netbeans não faz tudo pra mim, o NetBeans só faz oque o VB e o Delphi fazem a 5 anos, esse tipo de abordagem não me interessa nem um pouco, gosto de ter o máximo de controle possível sobre a aplicação.

Criado 20 de dezembro de 2006
Ultima resposta 20 de dez. de 2006
Respostas 3
Participantes 3