Problema al obtener el valor de las celdas de un jtable

publicado por: Anonymous

Se me presenta un problema al obtener el valor de las celdas de una columna específica y es que yo quiero obtener el orden de esos datos, uso:

   TableRowSorter sorter = new TableRowSorter(ModeloClientes);
    tablaCliente.setRowSorter(sorter);

ese es el orden en el que me los muestra si le doy click en la columna, previamente con el sql le doy orden de asc a la cantidad. Pero necesito también el orden en el que me lo actualiza la tabla. Usé este código pero me sigue agarrando el mismo orden del sql.

private void tablaClienteMouseClicked(java.awt.event.MouseEvent evt) {                                          
    DefaultTableModel ModeloClientes = (DefaultTableModel) tablaCliente.getModel();
    if (evt.getClickCount() == 1)
    {
        for (int i = 0; i < tablaCliente.getRowCount(); i++) 
        {
            Object f = tablaCliente.getModel().getValueAt(i, 1);
            String d = f.toString();
            int numero = Integer.parseInt(d);
            ORDENALEATORIO[j]=numero;
            j++;
        }
    }
}

introducir la descripción de la imagen aquí
introducir la descripción de la imagen aquí
introducir la descripción de la imagen aquí

solución

Cambia tu código por este:

private void tablaClienteMouseClicked(java.awt.event.MouseEvent evt) {                                          
        DefaultTableModel ModeloClientes = (DefaultTableModel) tablaCliente.getModel();
        if (evt.getClickCount() == 1)
        {
            for (int i = 0; i < tablaCliente.getRowCount(); i++) 
            {
                Object f = tablaCliente.getValueAt(i, 1);
                String d = f.toString();
                int numero = Integer.parseInt(d);
                ORDENALEATORIO[i]=numero;
            }
        }
    }

Uno: El getModel() debes hacerlo de tu tabla directo no del modelo.

Segundo: No entiendo porqué utilizas la variable j si puedes utilizar directamente tu indice i del ciclo for.

Respondido por: Anonymous

Leave a Reply

Your email address will not be published. Required fields are marked *