llevo media tarde con el mismo problema, y no sé cómo resolverlo.
Tengo un jTable en el que meto los datos de una consulta SQL. Luego doy la opción de ordenar estos datos de dos formas diferentes. Por ejemplo, pulsando el botón "por precio", quiero que se ordene por precio. Pero lo quiero en el mismo jTable.
El problema es que no se me actualiza el jTable.
La estructura que sigo es la siguiente:
tengo un método rellenarTabla, que rellena el jTable con los datos de la consulta "inicial". A este método se le llama desde el constructor, justo antes del jbInit();
Código:
Luego, tengo el action_performed del botón de ordenar:public void rellenarTabla(Vector v) { final String[] encabezado={"NºOFERTA","FECHA COMIENZO","FECHA FIN","TAMAÑO CASA","PRECIO"}; datos=new Object[v.size()][5]; for(int i=0;i<v.size();i++){ String noferta=((Oferta)v.elementAt(i)).getNumOferta(); java.sql.Date diaini=((Oferta)v.elementAt(i)).getDiaIni(); java.sql.Date diafin=((Oferta)v.elementAt(i)).getDiaFin(); int tamano=((Oferta)v.elementAt(i)).getTamano(); float precio=((Oferta)v.elementAt(i)).getPrecio(); datos[i][0]=noferta; datos[i][1]=diaini; datos[i][2]=diafin; datos[i][3]=new Integer(tamano); datos[i][4]=new Float(precio); } tabla_ofertas=new JTable(datos, encabezado); }
Código:
Quiero que sea en la misma ventana, pero no sé cómo hacerlo. Si alguien me puede ayudar le estaría muy agradecida!private void jButton1_actionPerformed(ActionEvent e) { try{ Vector listaofertas=new Vector(); go=GestorOfertas.getInstance(); float precio=Float.parseFloat(aux.elementAt(2).toString()); int mindias=Integer.parseInt(aux.elementAt(3).toString()); int habit=Integer.parseInt(aux.elementAt(4).toString()); int baños=Integer.parseInt(aux.elementAt(5).toString()); listaofertas=go.getTodasOfertas((Date)aux.elementAt(0),(Date)aux.elementAt(1),precio, mindias,habit, baños, "precio"); rellenarTabla(listaofertas); tabla_ofertas.repaint(); }catch(Exception ex){ System.out.println(ex.getMessage()); } }
muchas gracias!