Problemas com paint() e ActionPerformed()

2 respostas
S

Olá amigos, saudações,

Estou construindo uma aplicação java, utilizando NetBeans. O programa realizada a animação de algoritmos, mostrando, a cada passo da execução do algoritmo, os valores recebidos e os cálculos realizados.
Para isso, utilizo dois jInternalFrame’s, um para exibição do algoritmo e outro para demonstrar os cálculos realizados, sendo que a cada passo da execução do algoritmo a linha em execução tem sua cor alterada.
Até ai, blz.
Acontece que. fiz isso utilizando a função paint() que, tem em seu corpo funções para exibir o conteúdo inicial, que não muda com a execução. Para controlar os passos da execução, coloquei um botão próximo que, a partir da quantidade de cliques, ele vai fazendo a animação, utilizando, para isso funções que recebem como parâmetro a quantidade de cliques já dados, o que to conseguindo passar como parâmetro, tranquilo.
O problema é que não consegui, e não sei se pode, definir o ActionPerformed dentro da função paint(), pq, à medida que vai executando, vai crescendo o conteúdo no jInternalFrame, e ao completar toda a área do jInternalFrame, é necessário chamar repaint(), mas qdo chamo repaint() é impresso apenas o conteúdo que existe dentro do paint(), e tudo que foi redesenhado através das funções, é apagado.
Alguém sabe como resolver?

Desculpa a confusão ai, acho q da pra entender

Desde já, agradeço a atenção.

[]'s

2 Respostas

ViniGodoy

Bom, em primeiro lugar, se você está usando o Swing, deveria ter feito através do método paintComponent e não do método paint.

O comando repaint() apenas chamará paint() (que por sua vez chama paintComponent) novamente, para que toda a área do frame seja redesenhada. E é isso que você vai ter que fazer: redesenhar tudo, de acordo com o contexto de sua aplicação (número de cliques dados, ponto no programa onde o usuário está, etc).

S

ViniGodoy:
Bom, em primeiro lugar, se você está usando o Swing, deveria ter feito através do método paintComponent e não do método paint.

O comando repaint() apenas chamará paint() (que por sua vez chama paintComponent) novamente, para que toda a área do frame seja redesenhada. E é isso que você vai ter que fazer: redesenhar tudo, de acordo com o contexto de sua aplicação (número de cliques dados, ponto no programa onde o usuário está, etc).

Vlw pela atenção brother,

Seguinte, não to conseguindo fazer com paintComponent(Graphics g).
Quando chamo o super.paintComponent(g) dá erro. To utilizando JFrame, não sei se tem algum problema quanto a isso.
Se necessário posto o código aqui pra dar uma olhada.

Vlw mais uma vez

[]'s.

Criado 16 de maio de 2007
Ultima resposta 20 de mai. de 2007
Respostas 2
Participantes 2