El botón comenzar tendrá un Action Performed, el cual se activara cuando se le de click al botón
private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
iniciar();
this.paintAll(this.getGraphics()); // va a pintar toda la interfaz grafica
}
Creamos un metodo que va a inicializar el juego el cual tendra dos enteros siendo filas, columnas, el cual apartir del Text se conseguirla lo que ingrese y se convertira en un entero, creamos un Layout que nos dibujara la fila y columnas.
creamos dos for que cuenten nuestras filas y columnas, para que cada vez se genere un ciclo se cree un nuevo boton, creamos un nuevo cuadro le asignamos el color que tendrá, le agregamos al cuadro el ActionListener para ejecutar cuando se oprima un boton,.
creamos dos contadores el cual sera contador de numero de cuadros y minas .
Llevando el siguiente código
private void iniciar ()
{
this.panel_juego.removeAll(); //borra los objetos para volver a empezar
int nFilas, nColumnas;
nFilas=Integer.parseInt(this.filas.getText()); //obtiene el texto y lo coloque en filas, convirtiendolo en un num entero y lo guarde en nFilas
nColumnas=Integer.parseInt(this.columnas.getText());
this.panel_juego.setLayout(new java.awt.GridLayout(nFilas,nColumnas)); //al ejecutar se crea el layout
this.numeroCuadro=nFilas*nColumnas ;
this.contadorMinas=0; //para cundo reinicie el juego vuelva a cero
for (int i=0;i<nFilas;i++)
{
for(int j=0;j<nColumnas;j++)
//cada vez que se haga el ciclo se gener un nuevo boton
{
Cuadro temp=new Cuadro (); // creamos el cuadro
temp.setBackground(Color.BLACK);
temp.addActionListener(this); //escuchador todos los botones generados ejecutara el metodo de Action
if(temp.estaMinado())
this.contadorMinas++;
temp.setVisible(true);
this.panel_juego.add(temp);
}
}
}
este codigo vva dentro del boton comenzar?
ResponderEliminar