Problema na atualização do JPanel

0 respostas
G

Quando mando fazer um novo jogo, deveria recolocar o panel novamente. E já tentei varias coisas, sendo que não sair muita coisa

Vou colocar só trecho do codigo, onde eu faço essa limpeza, e onde ele inicia o Panel

private void initPanel() {
        panel = new JPanel();
        tela = panel;
        tela.setLayout(new GridLayout(11,11));
       
        jogo = new Jogo(this);
        fase = jogo.getFase();
        mapa = fase.getMapa();
       
        inicializa();
       
    }


private void inicializa() {
        adiciona();
    }

 private void adiciona() {
        personagens = fase.getPersonagens();
        for(int i=0; i<Fase.TAMANHO;i++){
           
            for(int j=0; j< Fase.TAMANHO; j++){
               
                if(mapa[i][j]== Fase.GRAMA){
                    tela.add(new Casa(i,j,Fase.GRAMA, fase));
                   
                }else if(mapa[i][j]==Fase.PEDRA){
                    tela.add(new Casa(i,j,Fase.PEDRA, fase));
                }else{
                    Casa casa = new Casa(i,j,Fase.BLOCO, fase);
                    tela.add(casa);
                }
               
            }
        }
        tela.repaint();
    }

   public void actionPerformed(ActionEvent e) {
        if (e.getSource() == mItemSobre) {
            JOptionPane.showMessageDialog(frame.getContentPane(), "Bomberman v1.00 ,"Sobre este Jogo", JOptionPane.INFORMATION_MESSAGE, null);
        }
        if(e.getSource() == mItemNovo){
            frame.remove(tela);
            tela = null;
            initPanel();
            frame.add(tela);
        }
        if(e.getSource() == mItemSair){

            System.exit(0);
        }
    }

Deveria remover a tela, depois, set o valor dela para null, e em seguida mando renicialziar a tela e depois, adiciono no frame.

Sendo que isso não ocorrer. Quando seleciono essa opção, a tela onde fica o jogo fica cinza.

Criado 7 de junho de 2006
Respostas 0
Participantes 1