Java - PASAR UN ARRAY LIST DE UN JFRAME A UN OBJETO DE OTRO JFRAME

 
Vista:
sin imagen de perfil

PASAR UN ARRAY LIST DE UN JFRAME A UN OBJETO DE OTRO JFRAME

Publicado por OSCAR DAVID TIZOL (3 intervenciones) el 31/08/2016 07:48:50
MI PROBLEMA ES EL SIGUIENTE: TENGO UN JFRAME DONDE TENGO UNA JTABLE. A PARTIR DE LOS DATOS DEL JTABLE CREO UN ARRAY LIST. AL EJECUTAR UN EVENTO NECESITO QUE ESE ARRAYLIST PASE A OTRO JFRAME DONDE TENGO UN OBJETO CONTROLPROCESO QUE USA ESA ARRAY LIST. NO ME HAN DADO SOLUCION PERO ME INDICAN QUE NO USE VARIABLES ESTATICAS. NECESITO AYUDA URGENTEMENTE.
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 Alain
Val: 22
Ha mantenido su posición en Java (en relación al último mes)
Gráfica de Java

PASAR UN ARRAY LIST DE UN JFRAME A UN OBJETO DE OTRO JFRAME

Publicado por Alain (8 intervenciones) el 31/08/2016 21:26:21
Hola Oscar:

Una variante pudiera ser en efecto usar variables estáticas, pero creo que es la menos elegante porque estarías mezclando lógica de negocio con interfaz de usuario. Aquí te dejo una alternativa que espero te sirva. La idea básica es implementar una clase controladora que contenga un ArrayList y un patrón Singleton sencillo. No conozco en detalle tu problema pero en principio creo que esto te puede ayudar.
Saludos

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
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
public class Person {
	private String name;
	private int age;
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public int getAge() {
		return age;
	}
	public void setAge(int age) {
		this.age = age;
	}
	public Person(String name, int age) {
		super();
		this.name = name;
		this.age = age;
	}
 
}
 
import java.util.ArrayList;
 
public class PersonController {
 
	private ArrayList<Person> personas;
	public static PersonController controller; //idea básica del patrón Singleton
 
	private PersonController(){
		personas=new ArrayList<Person>();
	}
 
	public static PersonController getInstance(){
		if(controller == null)
			controller = new PersonController();
		return controller;
	}
 
	public ArrayList<Person> getPersonas() {
		return personas;
	}
 
	public void setPersonas(ArrayList<Person> personas) {
		this.personas = personas;
	}
}
 
import java.util.ArrayList;
 
public class Jframe1 {
 
 
	public void llenarLista(){
		ArrayList<Person> lista = new ArrayList<Person>();
		//Llenar lista con la jTable
		PersonController.getInstance().setPersonas(lista);//aqui pone a apuntar el ArrayList de PersonController a la lista con los valores
		//Otra opcion es copiar todos los valores de lista al ArrayList de PersonController
		//System.arraycopy(lista, 0, PersonController.getInstance().getPersonas(), 0, lista.size());
	}
}
 
import java.util.ArrayList;
 
public class JFrame2 {
 
	public void usarLista(){
		ArrayList<Person> personas = PersonController.getInstance().getPersonas();
		//usar la lista
	}
}
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
sin imagen de perfil

PASAR UN ARRAY LIST DE UN JFRAME A UN OBJETO DE OTRO JFRAME

Publicado por OSCAR DAVID (3 intervenciones) el 02/09/2016 03:05:30
ME FUNCION MUCHO TU AYUDA... SOLO QUE POR ALGUNA RAZON NO ME DI CUENTA POR EL ERROR QUE ME DABA ANTERIORMENTE, QUE NO SE CARGA LA LISTA...A PARTIR DE LA JTABLE. CAPTURO LOS DATOS CON UN FOR Y A PARTIR DEL FOR CARGO LOS DATOS A MI OBJETO PROCESO, DESPUES LO AGREGO A UNA LISTA.
SOLO ME AGREGA LA ULTIMA LINEA.!!! ;( POR FAVOR, AYUDAME...



Captura
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 Alain
Val: 22
Ha mantenido su posición en Java (en relación al último mes)
Gráfica de Java

PASAR UN ARRAY LIST DE UN JFRAME A UN OBJETO DE OTRO JFRAME

Publicado por Alain (8 intervenciones) el 02/09/2016 19:43:17
Pues lo único que se me ocurre que pudiera pasar es que como en cada iteración del for estás usando la misma instancia (proceso) pues estás actualizando la misma dirección de memoria a la que apunta la instancia. Prueba esto:

1
2
3
4
5
6
for(int i=0;i<nFilaTabla;i++){
   Proceso proceso = new Proceso() //o el constructor que tengas definido
   proceso.set...
   ...
lista.add(proceso);
}//for

Espero te ayude. Saludos!!!
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