Java - Ayuda con tabla en Java

   
Vista:

Ayuda con tabla en Java

Publicado por Iván (3 intervenciones) el 27/02/2014 03:11:50
Hola gente, quiero pedirles ayuda a ver si alguien puede echarme una mano. Resulta que tengo un formulario en java el cual el usuario va rellenando datos y al pulsar un botón estos datos se añaden a una fila en la tabla, por ejemplo

Nombre Apellidos Votos
Jose Lopez 3
Marcos Suarez 5

La forma con la que tengo que añadir las filas al modelo de la tabla es asi:

Object[] nuevoCandidato = { nombreCandidatoText.getText(),apellidosCandidatosText.getText(), 1 };
model.addRow(nuevoCandidato);

Donde nombreCandidatoText.getText() y ,apellidosCandidatosText.getText() son las entradas de teclado y el 1 el valor por defecto del voto.

La cuestión es que tengo que sacar los datos de la fila que contenta el mayor número de votos y al ser de tipo Object no puedo manejarlos como enteros. ¿Alguién podría darme una solución?
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

Ayuda con tabla en Java

Publicado por alvaro (17 intervenciones) el 27/02/2014 13:04:21
Has probado a hacer un casting a enteros????

Has probado a hacerte una clase Candidato con las siguientes variables:

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
private String nombre;
private String apellidos;
private int voto;
 
 
/**
*Constructor
**/
public Candidato(String nombre,String apellidos,int voto){
this.nombre = nombre;
this.apellidos = apellidos;
this.voto = voto;
}
public Candidato(){
//constructor vacio
}
...
 
getters y setters
 
public void setNombre(String nombre){
this.nombre = nombre;
}
 
public String getNombre(){
return nombre;
}


... demas getters y setters

y cuando recojas los datos por flujo de entrada realizas lo siguiente

Candidato candidato = new Candidato(nombreCandidato.getText(),apellidosCandidato.getText(),1);

-------- Ó te creas el candidato vacio....

Candidato candidato = new Candidato();

//y le pasamos los datos a pelo con los setters

candidato.setNombre(nombreCandidato.getText().trim());//trim() parsea el campo para que no tenga espacio delante
//ni detras de la cadena.


Con este quiero llegar a... que cuando metas datos en la tabla metes un objeto de tipo Candidato, y al recogerlos recibes un Object que castearemos a (Candidato) y podremos obtener todos los datos del objeto mediante sus getters...

//getters

candidato.getNombre();
candidato.getApellidos();
candidato.getVoto();



No se si esto te servira de algo pero ve probando y me cuentas que tal va...
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

Ayuda con tabla en Java

Publicado por Ivan (3 intervenciones) el 27/02/2014 23:08:58
Gracias por la respuesta me ayudaste a verlo desde otro punto de vista. Al final lo que hice fue esto:

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
ArrayList<Integer> votitos = new ArrayList<Integer>();
 
			   for(int i=0; i < model.getRowCount(); i++){
					String valor = String.valueOf(table.getValueAt(i, 2));
					int num = Integer.parseInt(valor);
					votitos.add(num);
 
 
					}
 
			   //Collections.sort(votitos);  Ordena el array de menor a mayor
 
			   Comparator<Integer> comparador = Collections.reverseOrder();
			   Collections.sort(votitos, comparador);
 
 
			   int votoMasAlto= votitos.get(0);
			   int votoSegundoMasAlto = votitos.get(1);
 
 
			   for (int i=0; i<model.getRowCount(); i++){
 
				   if( model.getValueAt(i, 2).equals(votoMasAlto)){
					   nombrito =(String) model.getValueAt(i, 0);
					   apellidito =(String) model.getValueAt(i,1);
					   System.out.println("El primero es:" +nombrito + " " +apellidito);
 
 
				   }else if(model.getValueAt(i, 2).equals(votoSegundoMasAlto)){
					   nombrito =(String) model.getValueAt(i, 0);
					   apellidito =(String) model.getValueAt(i,1);
					   System.out.println("El segundo es:" +nombrito + " " +apellidito);
 
 
				   }

Creo un array y voy recorriendo la tabla y tranformando cada objecto voto en String y después en entero y guardándolo en el array. Una vez tengo el array lleno de números los ordeno de mayor y a menor y guardo el primero y por último vuelvo a recorrer la tabla y me quedo con la información que me interesa cuando encuentro en la columna votos el mismo número. Espero que le pueda servir a alguien.
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