• Jueves 14 de Noviembre de 2024, 19:39

Autor Tema:  Como Pasar Parametros Y Ver Su Valor Modificado  (Leído 1409 veces)

alemag

  • Miembro MUY activo
  • ***
  • Mensajes: 180
    • Ver Perfil
Como Pasar Parametros Y Ver Su Valor Modificado
« en: Sábado 9 de Diciembre de 2006, 15:07 »
0
Saludos compañeros, tengo una clase A, y desde esa clase llamo a otra clase B. En esta clase B tengo definidas unas variables que se ven modificado su valor, pero creo un objeto de la clase B en la clase A, dichos valores no se ven modificados. Concretamente es:

Public class Nuevo
{
JList lista;
}

Public class abrir
{
Public void abrir_fichero (…)
{
 // list contiene, a traves dl modelo, una lista de cadenas
// y su valor se modifica
}
}

Y en el programa principal hago:
Class Menu
{

Nuevo n=new Nuevo();
Abrir ab=new Abrir();
// y si ahora quiero ver el contenido de la lista con n.lista su valor no se ve modificado,
// me dice que no contiene ninguna cadena, cuando deberia contener alguna.
}
Como puedo hacer para ver el contenido real ¿?? (en abrir, en la clase, la contiene bien la lista de cadenas, pero debo cometer algun error en el paso de parametros)

Por favor ayudadme que es un poco urgente.
Muchas gracias.

escape

  • Nuevo Miembro
  • *
  • Mensajes: 16
    • Ver Perfil
Re: Como Pasar Parametros Y Ver Su Valor Modificado
« Respuesta #1 en: Sábado 9 de Diciembre de 2006, 17:38 »
0
por lo que entendí de tu explicación, en la clase Abrir, lees un archivo y el contenido de  ese archivo lo vas a pasar a una JList. Lo que puedes hacer es en la clase Abrir lees el contenido del archivo con tu metodo void abrirArchivo, me imagino que pasas el contenido a una array de Strings. En la misma clase Abir creas un metodo public String[] getContenido() en donde retornas el array.

En tu clase Nuevo, instancias un objeto de Abrir, principalmente para usar el metodo getContenido(), el que devuelve el array. El constructor de JList recibe un array, por lo tanto el getContenido() lo puedes usar como parámetro para ese constructor.

alemag

  • Miembro MUY activo
  • ***
  • Mensajes: 180
    • Ver Perfil
Re: Como Pasar Parametros Y Ver Su Valor Modificado
« Respuesta #2 en: Sábado 9 de Diciembre de 2006, 21:36 »
0
Lo que hago en abrir es rellenar la lista JList que tengo declarada en Nuevo (y que le paso como parametro) con lo que la variable n deberia estar rellenada no ??? (con los datos de la lista) pero cuando la leo en mi menu principal no contiene nada. Por que puede ser ???

escape

  • Nuevo Miembro
  • *
  • Mensajes: 16
    • Ver Perfil
Re: Como Pasar Parametros Y Ver Su Valor Modificado
« Respuesta #3 en: Sábado 9 de Diciembre de 2006, 23:16 »
0
en teoria la idea está bien, pero otra cosa es ver el código de tu programa.  Adjunta el codigo usando la opción Adjuntar archivos.

silverfox

  • Miembro MUY activo
  • ***
  • Mensajes: 280
    • Ver Perfil
Re: Como Pasar Parametros Y Ver Su Valor Modificado
« Respuesta #4 en: Lunes 11 de Diciembre de 2006, 11:55 »
0
Hola...

Por lo que dices, tiene pinta de que no estás pasando lo que se llama un 'objeto vivo' (en este caso, 'lista viva')

Fijate en la diferencia entre estos dos códigos, y su resultado final:

Clase 1, intento 1:
Código: Text
  1.  
  2. import java.util.*;
  3.  
  4. public class Test_Java {
  5.  
  6.   public List lista= null;
  7.  
  8.   Test_Java(){}
  9.  
  10.   public static void main (String args[]){
  11.     Test_Java t= new Test_Java();
  12.     Test_Java2 m= new Test_Java2();
  13.     m.alterar_lista(t.lista);
  14.     if (t.lista!= null)
  15.       for (int i=0; i < t.lista.size(); i++)
  16.         System.out.println(t.lista.get(i));
  17.     else
  18.       System.out.println("La lista está vacía!!!");
  19.   }
  20. }
  21.  

Clase 2, intento 1

Código: Text
  1. import java.util.*;
  2.  
  3. public class Test_Java2 {
  4.  
  5.   public Test_Java2() {
  6.   }
  7.  
  8.   public void alterar_lista (List a){
  9.     a= new ArrayList();
  10.     a.add("obj1");
  11.     a.add("obj2");
  12.     a.add("obj3");
  13.   }
  14. }
  15.  

Diferencia entre lo anterior y esto otro:

Clase 1, intento 2:
Código: Text
  1.  
  2. import java.util.*;
  3.  
  4. public class Test_Java {
  5.  
  6.   public List lista= new ArrayList();
  7.  
  8.   Test_Java(){}
  9.  
  10.   public static void main (String args[]){
  11.     Test_Java t= new Test_Java();
  12.     Test_Java2 m= new Test_Java2();
  13.     m.alterar_lista(t.lista);
  14.     if (t.lista!= null)
  15.       for (int i=0; i < t.lista.size(); i++)
  16.         System.out.println(t.lista.get(i));
  17.     else
  18.       System.out.println("La lista está vacía!!!");
  19.   }
  20. }
  21.  

Clase 2, intento 2

Código: Text
  1. import java.util.*;
  2.  
  3. public class Test_Java2 {
  4.  
  5.   public Test_Java2() {
  6.   }
  7.  
  8.   public void alterar_lista (List a){
  9.     a.add("obj1");
  10.     a.add("obj2");
  11.     a.add("obj3");
  12.   }
  13. }
  14.  


A primera vista son iguales, ¿verdad? ;)


Espero que puedas sacar algunas conclusiones que te sirvan para solucionar tu problema.

Un saludo.


Silverfox