Desenhando num JPanel

5 respostas
Lenhador_de_Yggdrasi

Exauri minhas buscas pela net e não achei uma solução.

É simples, quero pintar um JPanel ao pressionar um botao, a pintura é feita em uma classe separada:

public class Painter extends JPanel{
//desenho básico para teste
public void paintComponent (Graphics g){
    super.paintComponent(g);
    g.setColor(Color.red);
    g.fillOval(10, 10, 20, 50);
      }
}

Ao que li por aí, o modo de invocar seria o seguinte:

private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {                                         
    
    Painter paintThis = new Painter();
    JPanel1.add(paintThis); //ja existe um JPanel1 em uma JFrame em um GUI
}

Mas nada acontece!
Tentei tudo, repaints, validates, até incluí um cotandor de componentes no JPanel (que informa que sim, cada clicada do botao um componente é adicionado), mas nada aparece.
Alguma mente brilhante sabe porquê?

5 Respostas

gabrielmassote

estou vendo vários comentarios do pessoal implementado ou melhor reimplementando esse metodo paintComponent dos paineis e sempre da pau…

e sempre sugiro de um modo mais simples…
nao é mais facil voce criar dosi paineis de normalmente e quando voce clicar no botao voce adiciona no painel 1 o painel 2?

isso é 100% de certeza de dar certo…e bem mais simples…nada de repaint e bla bla bla

so uma sugestao

W

gabrielmassote:
estou vendo vários comentarios do pessoal implementado ou melhor reimplementando esse metodo paintComponent dos paineis e sempre da pau…

e sempre sugiro de um modo mais simples…
nao é mais facil voce criar dosi paineis de normalmente e quando voce clicar no botao voce adiciona no painel 1 o painel 2?

isso é 100% de certeza de dar certo…e bem mais simples…nada de repaint e bla bla bla

so uma sugestao

voce vai ficar criando componentes pra cada quadro ? Oo pesaaaado demais,voce ainda perder o controle da tela

quanto ao lenhador daqui a pouco eu dou uma olhada que cabei de chegar no trampo ai e enrolado de brincar agora aqui …

mas e sempre melhor vc fazer sua propria pintura do que ficar dependendo da JVM pra chamar o repaint quando ela quizer.

Lenhador_de_Yggdrasi

Pois é, o que quero é fazer a pintura pois mais adiante ela vai ser mais dinâmca.

Obrigado pelas respostas anyway, continuo procurando uma solução e não encontrei nada ainda. :roll:

gabrielmassote

so foi uma dica…
eu nao uso muita parte grafica…

mas que todos comentarios estao girando em cima de erros pintando os proprios paineis estao…
entao so foi um sugestao que vai dar certo…

Lenhador_de_Yggdrasi

Consegui resolver meus problemas na tática de tentativa e erro, e após exaustivas falhas, descobri a raiz do problema, é preciso definir os limites da imagem desenhada, solucionei colocando:

novocomponente.setBounds(x, y, widht, heigt);

Obrigado aos que tentaram ajudar. :wink:

Criado 2 de junho de 2008
Ultima resposta 3 de jun. de 2008
Respostas 5
Participantes 3