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.