Pintar e Repintar

2 respostas
ThiagoA

E ai pessoal tudo beleza !?

Estou precissando de ajuda com o pintar e repintar de jogo

que é um projeto para facul.

Estou fazendo um pequeno teste, quando clico no botão "Pintar" uma figura

aparece na tela, mas quando clico no botão "Apagar" nada acontece :cry:

Alguem poderia me ajudar ??

CODIGO
package jog;

import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.Random;

import javax.swing.*;

public class PainelFiguras extends JComponent {

    static Circulo f1 = new Circulo();
    static Quadrado f2 = new Quadrado();
    static JComponent Figuras;
    static JButton botao;
    static JButton botao2;
    static JFrame frame = new JFrame("Teste Imagem");
    static JPanel painel = new Painel();
    public static Boolean visibilidade = false;
    

    private static class AcaoPinta implements ActionListener {

        @Override
        public void actionPerformed(ActionEvent event) {
            System.out.println("Ação executada !!!!!");
      
       Figuras = f1;
       Figuras.setVisible(true);
        painel.add(Figuras);          
       
        painel.repaint();


        }
    }
    
    private static class AcaoApaga implements ActionListener {
        

        @Override
        public void actionPerformed(ActionEvent event) {
            System.out.println("Ação executada !!!!!");
        
        
        Figuras.setVisible(false);
            
       
        painel.repaint();


        }
    }
    
    /**
     * @param args
     */
    public static void main(String[] args) {
        // TODO Auto-generated method stub   
        painel.add(f1);
        f1.setVisible(visibilidade);
        
        painel.add(f2);
        f2.setVisible(false);
        
        botao = new JButton("Pintar");
        botao.addActionListener(new AcaoPinta());
        painel.add(botao);
        
        botao2 = new JButton("Apagar");
        botao2.addActionListener(new AcaoApaga());
        painel.add(botao2);       
              

        frame.getContentPane().add(painel);

        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.setSize(750, 500);
        frame.setLocationRelativeTo(null);
        frame.setVisible(true);

    }
}

OBRIGADO !

2 Respostas

heroijapa

Essa variavel figura não muda de valor entre uma função e outra??

Da um systout na Figura quando cria e quando apaga e veja se o hash é o mesmo.

Pode acontecer de ela ter mudado de valor em algum outro lugar e ai quando vc tenta apagar ele tenta apagar outra coisa.

ViniGodoy

Seu problema parece ser que você ainda não compreende bem como funcionam as classes e objetos. Reveja os conceitos básicos da linguagem, aqueles que se aprende antes de começar a fazer aplicações gráficas (herança, diferença de classe e objeto, por que não usar static para tudo, etc) ou você terá sérios problemas.

Esse tópico, por se tratar de uma dúvida com Swing, vai ser movido para o fórum de interface gráfica. Procure ler com atenção a descrição dos fóruns antes de postar. Embora o problema aqui não seja exatamente o Swing.

Criado 7 de setembro de 2011
Ultima resposta 7 de set. de 2011
Respostas 2
Participantes 3