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

[SOLUCIONADO] Como mostrar datos de mysql en un jTable con Decimal Format

Estas en el tema de Como mostrar datos de mysql en un jTable con Decimal Format en el foro de Java en Foros del Web. Buenas! Quisiera saber como puedo recoger datos de mysql y mostrarlos en un jtable. Por ejemplo yo tengo una columna llamada precios y quisiera que ...
  #1 (permalink)  
Antiguo 12/08/2014, 22:33
 
Fecha de Ingreso: agosto-2014
Mensajes: 7
Antigüedad: 9 años, 8 meses
Puntos: 0
Como mostrar datos de mysql en un jTable con Decimal Format

Buenas!

Quisiera saber como puedo recoger datos de mysql y mostrarlos en un jtable.
Por ejemplo
yo tengo una columna llamada precios y quisiera que en el jtable los precios no se muestren asi:

25
sino asi:

25.00

se que existe decimalformat pero no se como usarlo en este caso.

Necesito ayuda por favor!!
  #2 (permalink)  
Antiguo 13/08/2014, 00:47
Avatar de rgf1987  
Fecha de Ingreso: diciembre-2012
Ubicación: Asturias
Mensajes: 269
Antigüedad: 11 años, 4 meses
Puntos: 22
Respuesta: Como mostrar datos de mysql en un jTable con Decimal Format

Puedes probar así:

Código Java:
Ver original
  1. DecimalFormat formato = new DecimalFormat("#####.00");
  2. System.out.println(formato.format(25));

Las # representan caracteres que solo aparecerán si existen en el argumento del formato, es decir, si tienes lo siguiente:

Código Java:
Ver original
  1. DecimalFormat formato = new DecimalFormat("#####.##");
  2. System.out.println(formato.format(25.0));

Imprimirá 25.0

Si tienes:

Código Java:
Ver original
  1. DecimalFormat formato = new DecimalFormat("#####.00");
  2. System.out.println(formato.format(25.1));

Imprimirá 25.10

Un saludo.
  #3 (permalink)  
Antiguo 13/08/2014, 01:47
 
Fecha de Ingreso: agosto-2014
Mensajes: 7
Antigüedad: 9 años, 8 meses
Puntos: 0
Como mostrar datos de mysql en un jTable con Decimal Format

Si lo se, el problema es que no se como aplicarlo para que me aperezca de esa forma en un jtable... ya que soy principiante
  #4 (permalink)  
Antiguo 13/08/2014, 04:51
Avatar de rgf1987  
Fecha de Ingreso: diciembre-2012
Ubicación: Asturias
Mensajes: 269
Antigüedad: 11 años, 4 meses
Puntos: 22
Respuesta: Como mostrar datos de mysql en un jTable con Decimal Format

Aquí tienes ejemplos de manejo de JTables

http://chuwiki.chuidiang.org/index.php?title=JTable

si tienes alguna duda, pon tu código para que podamos ayudarte, sino es bastante dificil saber que dificultad tienes.
  #5 (permalink)  
Antiguo 13/08/2014, 13:01
 
Fecha de Ingreso: agosto-2014
Mensajes: 7
Antigüedad: 9 años, 8 meses
Puntos: 0
Como mostrar datos de mysql en un jTable con Decimal Format

Para explicarlo mejor:

Yo ingreso estos datos:


Y quisiera que no pase esto:


Gracias de antemano

Última edición por KRISTXPHER; 13/08/2014 a las 13:14
  #6 (permalink)  
Antiguo 13/08/2014, 13:18
Avatar de farfamorA  
Fecha de Ingreso: noviembre-2010
Ubicación: Lima
Mensajes: 136
Antigüedad: 13 años, 5 meses
Puntos: 24
Respuesta: Como mostrar datos de mysql en un jTable con Decimal Format

Debes crear una clase (digamos, "MiNuevoCellRenderer") que extienda de la clase DefaultTableCellRenderer y sobreescribir su método getTableCellRendererComponent. Es justo dentro de ese método que debes utilizar la clase DecimalFormat.

Luego, le pones el cell renderer que acabas de crear a la columna que quieras:
Código Java:
Ver original
  1. miTabla.getColumnModel().getColumn(indice_columna_con_decimales).setCellRenderer(new MiNuevoCellRenderer());

Salu2.
  #7 (permalink)  
Antiguo 13/08/2014, 18:29
 
Fecha de Ingreso: agosto-2014
Mensajes: 7
Antigüedad: 9 años, 8 meses
Puntos: 0
Como mostrar datos de mysql en un jTable con Decimal Format

farfamorA, hice lo que me dijiste pero sigue sin salir nada
aqui esta el codigo para ver si me ayudas:

Código:
        public TblProgramas() {
        initComponents();   
        conexion();
        cargarProgramas("");
        FormatoProgramas();
        centrar_datos(0);
        centrar_datos(2);
        centrar_datos(3);
        centrar_datos(4);
        centrar_datos(5);
        setLocationRelativeTo(null);
    }
    
    private void cargarProgramas(String valor) {
        try {
            String titulos[] = {"Cód.", "Programas", "Precio", "Idioma", "Clasificación", "Tamaño"};
            
            m = new DefaultTableModel(null, titulos);
            JTable p = new JTable(m);
            String fila[] = new String[6];
            TblProgramas.conectate obj = new TblProgramas.conectate();
            String consulta = "SELECT * FROM verprogramas where CONCAT(idProgramas,' ',Programas,' ',Precio,' ',Idioma,' ',Clasificacion, Tamano) LIKE '%"+valor+"%'";
            ResultSet r;
            r = obj.Listar(consulta);
            while (r.next()) {

                fila [0] = r.getString(1);
                fila [1] = r.getString(2);
                fila [2] = r.getString(3);
                fila [3] = r.getString(4);
                fila [4] = r.getString(5);
                fila [5] = r.getString(6);
                m.addRow(fila);
                
            }
            tblProgramas.setModel(m);
            decimalestabla(2);
            centrar_datos(0);
            centrar_datos(2);
            centrar_datos(3);
            centrar_datos(4);
            centrar_datos(5);
            FormatoProgramas();
            sorter = new TableRowSorter<TableModel>(m);
            tblProgramas.setRowSorter(sorter);
            this.tblProgramas.setModel(m);
            tblProgramas.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
        } catch (SQLException e) {
            JOptionPane.showMessageDialog(null, "Error al extraer los datos", "Advertencia", JOptionPane.WARNING_MESSAGE);
        }
Este es la insercion que hice:
Código:
            private void decimalestabla(int colum) {
            tblProgramas.getColumnModel().getColumn(colum).setCellRenderer(new Renderdeci());
        }
Y esta es la clase:
Código:
public class Renderdeci extends DefaultTableCellRenderer
        {
            public void getTableCellRendererComponent() {
            DecimalFormatSymbols simbolo=new DecimalFormatSymbols();
            simbolo.setDecimalSeparator('.');
            DecimalFormat formateador = new DecimalFormat("###0.00", simbolo);  
            }
        }
Pero sigue sin funcionarme, no me manda error pero no salen los decimales

Saludos
  #8 (permalink)  
Antiguo 13/08/2014, 20:10
Avatar de farfamorA  
Fecha de Ingreso: noviembre-2010
Ubicación: Lima
Mensajes: 136
Antigüedad: 13 años, 5 meses
Puntos: 24
Respuesta: Como mostrar datos de mysql en un jTable con Decimal Format

En primer lugar, no estás sobreescribiendo el método getTableCellRendererComponent, sólo estás creando otro método con el mismo nombre (lo cual es posible, siempre y cuando tengan diferentes argumentos (parámetros)).
Mira la documentación de la clase TableCellRenderer.
También revisa el tema de herencia y polimorfismo.
En segundo lugar, mira los mensajes de rgf1987 en este mismo tema. Tú estás instanciando tu formateador, pero nunca lo usas.

Tu clase debería quedar así:
Código Java:
Ver original
  1. public class Renderdeci extends DefaultTableCellRenderer {
  2.  
  3.     private DecimalFormatSymbols simbolos;
  4.     private DecimalFormat formateador;
  5.  
  6.     public Renderdeci() {
  7.         simbolos = new DecimalFormatSymbols();
  8.         simbolos.setDecimalSeparator('.');
  9.         formateador = new DecimalFormat("###0.00", simbolos);
  10.     }
  11.    
  12.     @Override
  13.     public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column) {
  14.         // 1.- value = valor formateado utilizando el formateador */
  15.         // 2.- llamada al método getTableCellRendererComponent de la clase Padre (recuerda utilizar 'super')
  16.         return this;
  17.     }
  18.    
  19. }
Trata de avanzar en eso.

Salu2.
  #9 (permalink)  
Antiguo 13/08/2014, 22:35
 
Fecha de Ingreso: agosto-2014
Mensajes: 7
Antigüedad: 9 años, 8 meses
Puntos: 0
Como mostrar datos de mysql en un jTable con Decimal Format

Gracias, ya he podido solucionarlo pero me surgio un inconveniente y no se por que me sale con 1 solo decimal si yo en el decimalformat especifico ###0.00

Gracias por todo y por tu paciencia en verdad estoy muy agradecido

Saludos!

Última edición por KRISTXPHER; 14/08/2014 a las 01:58
  #10 (permalink)  
Antiguo 14/08/2014, 16:08
 
Fecha de Ingreso: agosto-2014
Mensajes: 7
Antigüedad: 9 años, 8 meses
Puntos: 0
Como mostrar datos de mysql en un jTable con Decimal Format

Muchas Gracias ya lo solucione.. no hubo necesidad de crear la clase...
y lo que hice fue:
Código actionscript:
Ver original
  1. Object fila [] = new Object[6]
  2. DecimalFormatSymbols simbolo = new DecimalFormatSymbols();
  3. simbolo.setDecimalSeparator('.');
  4. DecimalFormat formateador = new DecimalFormat("###0.00", simbolo);
  5. while(r.next())
  6. .....
  7. fila [2] = formateador.format(r.getFloat(3))

Etiquetas: jtable, mysql
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 01:52.