Java - Int no puede convertirse en nodo

 
Vista:
Imágen de perfil de Alberto
Val: 10
Ha aumentado 1 puesto en Java (en relación al último mes)
Gráfica de Java

Int no puede convertirse en nodo

Publicado por Alberto (5 intervenciones) el 24/03/2020 11:20:54
Buenos días:

Estoy realizando el juego de torre de hanoi en Java y me encuentro con este problema:


En la línea:

1
for(k = PilaTorreA.getCabeza(); k.getAbajo() != null; k = k.getAbajo())


Me da error que me dice que int no puede ser convertido a nodo.


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
private void PresentarTorreA(){
 
    ((DefaultTableModel)TorreA.getModel()).setRowCount(0);
 
    ModeloTablaTorreA.setRowCount(10);
 
    Nodo k;
 
    int RowDisco = (10 - PilaTorreA.getContNodo());
 
    if (PilaTorreA.getContNodo() > 0) {
 
        for(k = PilaTorreA.getCabeza(); k.getAbajo() != null; k = k.getAbajo()){
            String[] VectorNormal = {k.getDato()};
 
            ModeloTablaTorreA.insertRow(RowDisco, VectorNormal);
            RowDisco++;
 
        }
 
        if (k.getAbajo() == null){
            String[] VectorNormal = {k.getDato()};
            ModeloTablaTorreA.insertRow(RowDisco, VectorNormal);
 
        }
 
 
    }
 
 
    TorreA.setModel(ModeloTablaTorreA);
    ModeloTablaTorreA.setRowCount(10);
 
}


Muchas gracias por la ayuda!!

Un saludo
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Rodrigo
Val: 2.041
Plata
Ha mantenido su posición en Java (en relación al último mes)
Gráfica de Java

Int no puede convertirse en nodo

Publicado por Rodrigo (623 intervenciones) el 24/03/2020 13:47:07
Agrega la clase Nodo que estas usando, y especificamente el metodo getAbajo() que sospecho que es donde esta el problema.
El culpable tambien podria ser el metodo getCabeza().

Cuando publiques, destaca tu codigo, presiona el icono que aparece arriba con este simbolo </>
y el codigo va a quedar asi:

1
2
3
4
int miFuncion() {
  // la la
 ..
}

Es mas facil entender y ayudar asi.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
Imágen de perfil de Alberto
Val: 10
Ha aumentado 1 puesto en Java (en relación al último mes)
Gráfica de Java

Int no puede convertirse en nodo

Publicado por Alberto (5 intervenciones) el 24/03/2020 14:25:40
Hola @Rodrigo

La clase Nodo ya la tengo creada y el nodo abajo también eso es lo que me extraña, te dejo el código en el formato que me indicas, a ver si ves algo que yo no veo.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
public class Nodo {
 
    private String Dato;
    private Nodo Arriba;
    private Nodo Abajo;
 
    public String getDato() {
        return Dato;
    }
 
    public void setDato(String Dato) {
        this.Dato = Dato;
    }
 
    public Nodo getArriba() {
        return Arriba;
    }
 
    public void setArriba(Nodo Arriba) {
        this.Arriba = Arriba;
    }
 
    public Nodo getAbajo() {
        return Abajo;
    }
 
    public void setAbajo(Nodo Abajo) {
        this.Abajo = Abajo;
    }
 
 
}
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Rodrigo
Val: 2.041
Plata
Ha mantenido su posición en Java (en relación al último mes)
Gráfica de Java

Int no puede convertirse en nodo

Publicado por Rodrigo (623 intervenciones) el 24/03/2020 14:30:51
y getCabeza() ?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
Imágen de perfil de Alberto
Val: 10
Ha aumentado 1 puesto en Java (en relación al último mes)
Gráfica de Java

Int no puede convertirse en nodo

Publicado por Alberto (5 intervenciones) el 24/03/2020 16:48:16
Hola @Rodrigo,

getCabeza(), lo tengo en otra clase llamada pila:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
public class pila {
 
   private int ContNodo = 0;
 
   private Nodo Cabeza;
 
 
   public int getContNodo (){
 
       return ContNodo;
   }
 
 
   public int getCabeza (){
 
       return ContNodo;
   }
 
   public void Push (Nodo N){
 
       ContNodo++;
 
       if (Cabeza==null){
           Cabeza = N;
       }
       else {
 
       N.setAbajo(Cabeza);
       Cabeza.setArriba(N);
 
       Cabeza = N;
 
       }
 
   }
 
   public void Pop(){
 
       if (ContNodo > 0){
 
           ContNodo --;
 
           Cabeza = Cabeza.getAbajo();
       }
 
   }
 
   public String Peek(){
       return Cabeza.getDato();
 
   }
 
}
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Rodrigo
Val: 2.041
Plata
Ha mantenido su posición en Java (en relación al último mes)
Gráfica de Java

Int no puede convertirse en nodo

Publicado por Rodrigo (623 intervenciones) el 24/03/2020 18:39:31
Por que estas devolviendo un int en getCabeza() ?

No deberia ser:

1
2
3
public Nodo getCabeza() {
       return Cabeza;
}

?

Tiene mas sentido retornar "Cabeza" si el metodo se llama getCabeza() independiente de lo que sea Cabeza.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Alberto
Val: 10
Ha aumentado 1 puesto en Java (en relación al último mes)
Gráfica de Java

Int no puede convertirse en nodo

Publicado por Alberto (5 intervenciones) el 25/03/2020 09:49:47
Hola @Rodrigo,

He encontrado el fallo, en la clase principal tenía:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
private Nodo PresentarTorreA(){
 
    ((DefaultTableModel)TorreA.getModel()).setRowCount(0);
 
    ModeloTablaTorreA.setRowCount(10);
 
    Nodo k;
 
    int RowDisco = (10 - PilaTorreA.getContNodo());
 
    if (PilaTorreA.getContNodo() > 0) {
 
        for(k = PilaTorreA.getCabeza(); k.getAbajo() != null; k = k.getAbajo()){
            String[] VectorNormal = {k.getDato()};
 
            ModeloTablaTorreA.insertRow(RowDisco, VectorNormal);
            RowDisco++;
 
        }
 
        if (k.getAbajo() == null){
            String[] VectorNormal = {k.getDato()};
            ModeloTablaTorreA.insertRow(RowDisco, VectorNormal);
 
        }
 
 
    }

y tienen que ser:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
private void PresentarTorreA(){
 
    ((DefaultTableModel)TorreA.getModel()).setRowCount(0);
 
    ModeloTablaTorreA.setRowCount(10);
 
    Nodo k;
 
    int RowDisco = (10 - PilaTorreA.getContNodo());
 
    if (PilaTorreA.getContNodo() > 0) {
 
        for(k = PilaTorreA.getCabeza(); k.getAbajo() != null; k = k.getAbajo()){
            String[] VectorNormal = {k.getDato()};
 
            ModeloTablaTorreA.insertRow(RowDisco, VectorNormal);
            RowDisco++;
 
        }
 
        if (k.getAbajo() == null){
            String[] VectorNormal = {k.getDato()};
            ModeloTablaTorreA.insertRow(RowDisco, VectorNormal);
 
        }
 
 
    }


El error está en la línea dónde declaro el método PresentarTorreA() que lo había puesto como nodo.

Muchas graciaspor la ayuda
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Rodrigo
Val: 2.041
Plata
Ha mantenido su posición en Java (en relación al último mes)
Gráfica de Java

Int no puede convertirse en nodo

Publicado por Rodrigo (623 intervenciones) el 25/03/2020 12:26:34
Parece extrano que un error al interior de una funcion, indicado en una linea especifica (un for) se arregle modificando el tipo de retorno.
Tal vez tenias mas de 1 error,

Modificaste el metodo getCabeza() ?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Alberto
Val: 10
Ha aumentado 1 puesto en Java (en relación al último mes)
Gráfica de Java

Int no puede convertirse en nodo

Publicado por Alberto (5 intervenciones) el 25/03/2020 18:28:18
No, simplemente modifiqué esa parte.

Ya tengo el juego completo así que genial!

Gracias por la ayuda @Rodrigo
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar