entre Desarrolladores

Recibe ayuda de expertos

Registrate y pregunta

Es gratis y fácil

Recibe respuestas

Respuestas, votos y comentarios

Vota y selecciona respuestas

Recibe puntos, vota y da la solución

Pregunta

2votos

Capturar valor de un jtable y escribirlo en un jdatechooser

Presento inconveniente al actualizar el valor de un jdatechooser al dar clic en una jtable.
Lo que quiero es que cuando presione la fila en la jtable(tablaproductos), se actualice el valor de la fecha
en el jdatechooser, ya que con los JtextFiedl y demas controles no presento problemas.
Al darle clic en la tabla, me arroja el siguiente error:

Java.text.ParseException: Unparseable date "2017-10-14".

private void tablaproductosMouseClicked(java.awt.event.MouseEvent evt) {

     SimpleDateFormat formatodeltexto = new SimpleDateFormat("yyyyy/MM/dd");
       String fecha =       
     tablaproductos.getValueAt(tablaproductos.getSelectedRow(),5).toString().trim();
     Date dato = null;
     try {
      dato = (Date) formatodeltexto.parse(fecha);  
      int row = tablaproductos.getSelectedRow();
      txfIdProducto.setText(tablaproductos.getModel().getValueAt(row, 
      0).toString());
      txfRef.setText(tablaproductos.getModel().getValueAt(row, 1).toString());
      txfNombreProducto.setText(tablaproductos.getModel().getValueAt(row, 2).toString());
      jSpinner1.setValue(tablaproductos.getModel().getValueAt(row, 3));
      txfPrecio.setText(tablaproductos.getModel().getValueAt(row, 4).toString());
       jDateChooser1.setDate(dato);
       } 

       catch (Exception e)
        {
           JOptionPane.showMessageDialog(null, e);
        }
    }

1 Respuesta

2votos

FelipeMedel Puntos7400

bueno, primero aclaremos que tienes un formato de fecha erróneo, le estas seteando un formato yyyy-mm-dd, pero de igual forma estas parseando con un formato yyyy/mm/dd, debes manejar los mismos formatos para tus fechas.
En código la solución seria algo como esto:

private void tableDetallesMouseClicked(java.awt.event.MouseEvent evt) {                                           
        //obtenemos la fila seleccionada
        int fila = tableDetalles.getSelectedRow();
        //obtenemos la fecha de dicha fila
        String fecha = tableDetalles.getValueAt(fila, 3).toString();
        //creamos el formato en el que deseamos mostrar la fecha
        SimpleDateFormat formatoDelTexto = new SimpleDateFormat("yyyy/mm/dd");
        //creamos una variable tipo Date y la ponemos NULL
        Date fechaN = null;
        try {
            //parseamos de String a Date usando el formato
            fechaN = formatoDelTexto.parse(fecha);
            //seteamos o mostramos la fecha en el JDateChooser
            dateFecha.setDate(fechaN);
        } catch (ParseException ex) {
            ex.printStackTrace();
        }
    }  

y por ultimo una imagen que muestra el resultado del código anterior...

Resultado

fecha asignada

1voto

Mustafa comentado

Gracias, fue de ayuda y realmente funciona. :D

Por favor, accede o regístrate para responder a esta pregunta.

Otras Preguntas y Respuestas


...

Bienvenido a entre Desarrolladores, donde puedes realizar preguntas y recibir respuestas de otros miembros de la comunidad.

Conecta