duda
Hola: No entiendo lo k pasa, agyudarme please!! Tengo primero una matriz de
arrays de booleanos. No entiendo porque imprimen cosas diferentes, esos dos
metodos imprimir situados en diferentes sitios. (estan marcados con exclamaciones)
Gracias!!!!
public class SudokuFrame extends JFrame
{
.....
Arrayak matrize[][];
int i,j;
boolean array[];
kudeatzaileaInterfazea ki;
int x,y;
JButton jButton1 = new JButton();
public SudokuFrame(kudeatzaileaInterfazea pki)
{
try
{
ki= pki;
matrize= new Arrayak [9][9];
for(i=0; i<=8;i++)
{
for(j=0;j<=8;j++)
{
matrize[i][j] = new Arrayak(array);
}
j=0;
}
i=0;
jbInit();
}
catch(Exception e)
{
e.printStackTrace();
}
}
......
void jButton1_actionPerformed(ActionEvent e)
{
zenbakiaAukeratuFrame zbk11 =new zenbakiaAukeratuFrame(ki,jButton82);
this.guardar_kordenadas(0,0);
zbk11.borrar_botones();
zbk11.setVisible(true);
}
}
__________________________________________________
public class zenbakiaAukeratuFrame extends JFrame
{
JLabel jLabel1 = new JLabel();
JButton jButton1 = new JButton();
JButton jButton2 = new JButton();
JButton jButton3 = new JButton();
JButton jButton4 = new JButton();
JButton jButton5 = new JButton();
JButton jButton6 = new JButton();
JButton jButton7 = new JButton();
JButton jButton8 = new JButton();
JButton jButton9 = new JButton();
JButton jButton10 = new JButton();
kudeatzaileaInterfazea ki;
Arrayak matrize[][];
boolean [] array;
JButton b;
SudokuFrame suf;
public zenbakiaAukeratuFrame(kudeatzaileaInterfazea pki,JButton botoia)
{
try
{
ki=pki;
b= botoia;
suf= new SudokuFrame(ki); // se hace así????
jbInit();
}
catch(Exception e)
{
e.printStackTrace();
}
}
...
void jButton1_actionPerformed(ActionEvent e)
{
if (botoia_dago()!= 0)
{
ki.zutabean_ezabatu(0,false);
ki.errenkadan_ezabatu(0,false);
}
b.setText("1");
ki.zutabean_ezabatu(0,true);
ki.errenkadan_ezabatu(0,true);
suf.matrize[ki.lortux()][ki.lortuy()].esleitu(0);
this.setVisible(false);
suf.matrize[ki.lortux()][ki.lortuy()].inprimir(); // !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
}
public void borrar_botones()
{
int i;
suf.matrize[ki.lortux()][ki.lortuy()].inprimir(); // !!!!!!!!!!!!!!!!!!!!!!!!!!!!
for(i=0;i<=8;i++)
{
if (suf.matrize[ki.lortux()][ki.lortuy()].badago(i))
{
if (i==0){
jButton1.setEnabled(false);}
else if (i==1){
jButton2.setEnabled(false);}
else if (i==2){
jButton3.setEnabled(false);}
else if (i==3){
jButton4.setEnabled(false);}
else if (i==4){
jButton5.setEnabled(false);}
else if (i==5){
jButton6.setEnabled(false);}
else if (i==6){
jButton7.setEnabled(false);}
else if (i==7){
jButton8.setEnabled(false);}
else if (i==8){
jButton9.setEnabled(false);}
}
}
i=0;
}
arrays de booleanos. No entiendo porque imprimen cosas diferentes, esos dos
metodos imprimir situados en diferentes sitios. (estan marcados con exclamaciones)
Gracias!!!!
public class SudokuFrame extends JFrame
{
.....
Arrayak matrize[][];
int i,j;
boolean array[];
kudeatzaileaInterfazea ki;
int x,y;
JButton jButton1 = new JButton();
public SudokuFrame(kudeatzaileaInterfazea pki)
{
try
{
ki= pki;
matrize= new Arrayak [9][9];
for(i=0; i<=8;i++)
{
for(j=0;j<=8;j++)
{
matrize[i][j] = new Arrayak(array);
}
j=0;
}
i=0;
jbInit();
}
catch(Exception e)
{
e.printStackTrace();
}
}
......
void jButton1_actionPerformed(ActionEvent e)
{
zenbakiaAukeratuFrame zbk11 =new zenbakiaAukeratuFrame(ki,jButton82);
this.guardar_kordenadas(0,0);
zbk11.borrar_botones();
zbk11.setVisible(true);
}
}
__________________________________________________
public class zenbakiaAukeratuFrame extends JFrame
{
JLabel jLabel1 = new JLabel();
JButton jButton1 = new JButton();
JButton jButton2 = new JButton();
JButton jButton3 = new JButton();
JButton jButton4 = new JButton();
JButton jButton5 = new JButton();
JButton jButton6 = new JButton();
JButton jButton7 = new JButton();
JButton jButton8 = new JButton();
JButton jButton9 = new JButton();
JButton jButton10 = new JButton();
kudeatzaileaInterfazea ki;
Arrayak matrize[][];
boolean [] array;
JButton b;
SudokuFrame suf;
public zenbakiaAukeratuFrame(kudeatzaileaInterfazea pki,JButton botoia)
{
try
{
ki=pki;
b= botoia;
suf= new SudokuFrame(ki); // se hace así????
jbInit();
}
catch(Exception e)
{
e.printStackTrace();
}
}
...
void jButton1_actionPerformed(ActionEvent e)
{
if (botoia_dago()!= 0)
{
ki.zutabean_ezabatu(0,false);
ki.errenkadan_ezabatu(0,false);
}
b.setText("1");
ki.zutabean_ezabatu(0,true);
ki.errenkadan_ezabatu(0,true);
suf.matrize[ki.lortux()][ki.lortuy()].esleitu(0);
this.setVisible(false);
suf.matrize[ki.lortux()][ki.lortuy()].inprimir(); // !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
}
public void borrar_botones()
{
int i;
suf.matrize[ki.lortux()][ki.lortuy()].inprimir(); // !!!!!!!!!!!!!!!!!!!!!!!!!!!!
for(i=0;i<=8;i++)
{
if (suf.matrize[ki.lortux()][ki.lortuy()].badago(i))
{
if (i==0){
jButton1.setEnabled(false);}
else if (i==1){
jButton2.setEnabled(false);}
else if (i==2){
jButton3.setEnabled(false);}
else if (i==3){
jButton4.setEnabled(false);}
else if (i==4){
jButton5.setEnabled(false);}
else if (i==5){
jButton6.setEnabled(false);}
else if (i==6){
jButton7.setEnabled(false);}
else if (i==7){
jButton8.setEnabled(false);}
else if (i==8){
jButton9.setEnabled(false);}
}
}
i=0;
}
No incluyes la implementación del método del método imprimir de la clase Arrayak, que es la que causa el problema y en general el código me parece poco claro. Por ejemplo, declaras diez botones con nombres diferentes ¿por qué no declaras un array de 10 botones?
Cambiar:
JButton jButton1 = new JButton();
JButton jButton2 = new JButton();
JButton jButton3 = new JButton();
JButton jButton4 = new JButton();
JButton jButton5 = new JButton();
JButton jButton6 = new JButton();
JButton jButton7 = new JButton();
JButton jButton8 = new JButton();
JButton jButton9 = new JButton();
JButton jButton10 = new JButton();
por :
JButton [] botones=new JButton[10];
for(int i=0;i<botones.length;i++)
botones[i]=new JButton();
Esto:
public void borrar_botones()
{
int i;
suf.matrize[ki.lortux()][ki.lortuy()].inprimir(); // !!!!!!!!!!!!!!!!!!!!!!!!!!!!
for(i=0;i<=8;i++)
{
if (suf.matrize[ki.lortux()][ki.lortuy()].badago(i))
{
if (i==0){
jButton1.setEnabled(false);}
else if (i==1){
jButton2.setEnabled(false);}
else if (i==2){
jButton3.setEnabled(false);}
else if (i==3){
jButton4.setEnabled(false);}
else if (i==4){
jButton5.setEnabled(false);}
else if (i==5){
jButton6.setEnabled(false);}
else if (i==6){
jButton7.setEnabled(false);}
else if (i==7){
jButton8.setEnabled(false);}
else if (i==8){
jButton9.setEnabled(false);}
}
}
i=0;
}
por esto:
public void borrar_botones(){
suf.matrize[ki.lortux()][ki.lortuy()].imprimir);
for(int i=0;i<botones.length;i++){
if (suf.matrize[ki.lortux()][ki.lortuy()].badago(i))
botones[i].setEnabled(false);}
}
}
Cambiar:
JButton jButton1 = new JButton();
JButton jButton2 = new JButton();
JButton jButton3 = new JButton();
JButton jButton4 = new JButton();
JButton jButton5 = new JButton();
JButton jButton6 = new JButton();
JButton jButton7 = new JButton();
JButton jButton8 = new JButton();
JButton jButton9 = new JButton();
JButton jButton10 = new JButton();
por :
JButton [] botones=new JButton[10];
for(int i=0;i<botones.length;i++)
botones[i]=new JButton();
Esto:
public void borrar_botones()
{
int i;
suf.matrize[ki.lortux()][ki.lortuy()].inprimir(); // !!!!!!!!!!!!!!!!!!!!!!!!!!!!
for(i=0;i<=8;i++)
{
if (suf.matrize[ki.lortux()][ki.lortuy()].badago(i))
{
if (i==0){
jButton1.setEnabled(false);}
else if (i==1){
jButton2.setEnabled(false);}
else if (i==2){
jButton3.setEnabled(false);}
else if (i==3){
jButton4.setEnabled(false);}
else if (i==4){
jButton5.setEnabled(false);}
else if (i==5){
jButton6.setEnabled(false);}
else if (i==6){
jButton7.setEnabled(false);}
else if (i==7){
jButton8.setEnabled(false);}
else if (i==8){
jButton9.setEnabled(false);}
}
}
i=0;
}
por esto:
public void borrar_botones(){
suf.matrize[ki.lortux()][ki.lortuy()].imprimir);
for(int i=0;i<botones.length;i++){
if (suf.matrize[ki.lortux()][ki.lortuy()].badago(i))
botones[i].setEnabled(false);}
}
}