Foros del Web » Programación para mayores de 30 ;) » Java »

ordenar columnas de numeros de mayor a menor de jtable

Estas en el tema de ordenar columnas de numeros de mayor a menor de jtable en el foro de Java en Foros del Web. Que objeto de la tabla debo incluir en NULL y como. @import url("http://static.forosdelweb.com/clientscript/vbulletin_css/geshi.css"); Código Java: Ver original modelo = new DefaultTableModel ( null , titulos ...
  #1 (permalink)  
Antiguo 04/02/2017, 14:31
Avatar de soy_nicanor  
Fecha de Ingreso: mayo-2010
Mensajes: 374
Antigüedad: 14 años
Puntos: 3
ordenar columnas de numeros de mayor a menor de jtable

Que objeto de la tabla debo incluir en NULL y como.
Código Java:
Ver original
  1. modelo = new DefaultTableModel(null, titulos) {
  2.                     public Class getColumnClass(int column) {
  3.                       if (column >= 0 && column <= getColumnCount())
  4.                         return getValueAt(0, column).getClass();
  5.                       else
  6.                         return Object.class;
  7.                     }
  8.                 };

Estos datos se muestra en la Tabla.
Código Java:
Ver original
  1. String[] titulos = {"Vendedor","Efectivo ", "Efectivo Cja", "Dato"};
  2.         String[] registro = new String[4];
  3.         modelo = new DefaultTableModel(null, titulos);
  4.  
  5.         Connection cn = Conexion.getConnection();
  6.  
  7.         String sSQL = "SELECT usuario.usuario, reportediario.gananciaTotal, reportediario.efectivoBruto "+
  8.                 "FROM reportediario " +
  9.                 "INNER JOIN usuario ON usuario.id_us=reportediario.id_us ";                
  10.         try
  11.         {
  12.             Statement st = cn.createStatement();
  13.             ResultSet rs = st.executeQuery(sSQL);
  14.             int i=0;
  15.             while(rs.next())
  16.             {
  17.                 registro[0] = rs.getString("usuario.usuario");
  18.                 registro[1] = rs.getString("reportediario.gananciaTotal");
  19.                 registro[2] = rs.getString("reportediario.efectivoBruto");
  20.                 registro[3] = String.valueOf(i);
  21.                 i++;
  22.                 modelo.addRow(registro);              
  23.             }            
  24.             jTable1.setModel(modelo);//Buscador Princiapal          
  25.            
  26.             modelo = new DefaultTableModel(null, titulos) {
  27.                     public Class getColumnClass(int column) {
  28.                       if (column >= 0 && column <= getColumnCount())
  29.                         return getValueAt(0, column).getClass();
  30.                       else
  31.                         return Object.class;
  32.                     }
  33.                 };
  34.         }
  35.         catch (SQLException ex){
  36.             JOptionPane.showMessageDialog(null, ex);
  37.         }
  38.        
  39.         TableRowSorter<TableModel> elQueOrdena = new TableRowSorter<TableModel>(modelo);      
  40.         jTable1.setRowSorter(elQueOrdena);

De antemano Gracias.
__________________
Muy Feliz
  #2 (permalink)  
Antiguo 04/02/2017, 20:47
Avatar de detective_jd  
Fecha de Ingreso: abril-2011
Ubicación: Salto
Mensajes: 437
Antigüedad: 13 años
Puntos: 6
Respuesta: ordenar columnas de numeros de mayor a menor de jtable

Podrías utilizar order by en tu consulta sql para hacer la ordenación que tu quieres, por otro podrías crear tu abstracttablemodel si quieres para hacer reutilizable tu modelo en la tabla.

Saludos
  #3 (permalink)  
Antiguo 04/02/2017, 21:56
Avatar de soy_nicanor  
Fecha de Ingreso: mayo-2010
Mensajes: 374
Antigüedad: 14 años
Puntos: 3
Respuesta: ordenar columnas de numeros de mayor a menor de jtable

Esto me funciona como lo podría adaptar, Como podria usar Object[][] data
Código Java:
Ver original
  1. public static void main(String[] args) {
  2.         Object[][] data = { { "A", 5 }, { "B", 2 }, { "C", 4 }, { "D", 8 } };
  3.         String columnNames[] = { "Item", "Value" };
  4.         TableModel model = new DefaultTableModel(data, columnNames) {
  5.             public Class<?> getColumnClass(int column) {
  6.                 return getValueAt(0, column).getClass();
  7.             }
  8.         };
  9.         final JTable table = new JTable(model);
  10.  
  11.         RowFilter<Object, Object> filter = new RowFilter<Object, Object>() {
  12.             public boolean include(Entry entry) {
  13.                 Integer population = (Integer) entry.getValue(1);
  14.                 return population.intValue() > 3;
  15.             }
  16.         };
  17.  
  18.         TableRowSorter<TableModel> sorter = new TableRowSorter<TableModel>(model);
  19.         sorter.setRowFilter(filter);
  20.         table.setRowSorter(sorter);
  21.         JScrollPane scrollPane = new JScrollPane(table);
  22.         JFrame frame = new JFrame("Filtering Table");
  23.         frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  24.  
  25.         JButton btnNewButton = new JButton("Print values");
  26.         btnNewButton.addActionListener(new ActionListener() {
  27.             public void actionPerformed(ActionEvent e) {
  28.                 for(int row = 0;row < table.getRowCount();row++) {
  29.                     System.out.println(table.getModel().getValueAt(table.convertRowIndexToModel(row), 0));
  30.                 }
  31.             }
  32.         });
  33.         frame.getContentPane().add(btnNewButton, BorderLayout.SOUTH);
  34.         frame.getContentPane().add(scrollPane);
  35.         frame.setSize(300, 200);
  36.         frame.setVisible(true);
  37.     }
__________________
Muy Feliz
  #4 (permalink)  
Antiguo 04/04/2017, 10:16
Avatar de Fuzzylog  
Fecha de Ingreso: agosto-2008
Ubicación: En internet
Mensajes: 2.511
Antigüedad: 15 años, 8 meses
Puntos: 188
Respuesta: ordenar columnas de numeros de mayor a menor de jtable

Este post te podría dar herramientas, aunque tendrías que adaptar el código, por ejemplo puedes encapsular tus arrays en un objeto de dos parametros e implementar un Comparator o puedes usar lo que quieras ordenar como key en un TreeSet y el array completo como value, y extraer los datos ya ordenados.

http://stackoverflow.com/questions/7...ashmap-in-java
__________________
if (fuzzy && smooth) {
fuzzylog = "c00l";
return true;
}

Etiquetas: columnas, jtable, mayor, menor, numeros, set, string
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 00:38.