Java - Problema al intentar recoger la hora en un JLabel

 
Vista:
Imágen de perfil de Marvin
Val: 5
Ha aumentado su posición en 768 puestos en Java (en relación al último mes)
Gráfica de Java

Problema al intentar recoger la hora en un JLabel

Publicado por Marvin (2 intervenciones) el 30/06/2021 23:33:52
Hola:

Acudo a Uds. para que por favor me ayuden en este tema. Tengo poco tiempo con Java y el uso de fechas y horas se me hace complicado.

Anexo las ventanas donde al abrirla lo primero que aparece es el último documento grabado en dos tablas de una base de datos MySql con toda la información necesaria para el usuario (archivo: VENTANA_INICIAL.png).

Luego, al hacer click en (1- NUEVO) la ventana se limpia en la mayoría de los campos. Lo que sigue es comenzar a rellenar todos los campos que quedaron vacíos y cuando estén todos llenos se hace un click en (2-Agregar Registro) y la JTable (3) comienza a llenarse (archivo: VENTANA_RELLENA.png).

Cuando el usuario termina de rellenar el documento procede a (4-GUARDAR).

Es en GUARDAR donde tengo el problema. Tengo un JLabel oculto llamado: "jLabelMOV_HORA", donde heredo de otra clase la hora y lo coloco debajo de "initComponents". Les dejo el código de la clase Reloj, el extracto de lo heredado y el evento del botón Guardar.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
package login_bd;
 
import java.text.SimpleDateFormat;
import java.util.Date;
import javax.swing.JLabel;
 
/**
 *
 * @author Marvin
 */
public class Reloj extends Thread {
    private JLabel lbl;
 
    public Reloj(JLabel lbl) {
        this.lbl = lbl;
 
    }
 
    Reloj() {
        throw new UnsupportedOperationException("Not supported yet.");
    }
    public void run() {
        while (true) {
            Date hoy = new Date();
            SimpleDateFormat s = new SimpleDateFormat("HH:mm:ss");
            lbl.setText(s.format(hoy));
            try {
                sleep(1000);
 
        } catch (Exception ex) {
 
        }
    }
    }
}

1
2
3
4
5
6
7
8
9
10
public TransEntradasSalidas() {
        initComponents();
        setLocationRelativeTo(null);
        cargar();
        jLabelMOV_HORA.setVisible(false);
        txtUser.setVisible(false);
        jLabelMOV_TIPO.setText("I");
        jLabelMOV_TIPO.setVisible(false);
        Reloj hilo = new Reloj(jLabelMOV_HORA);
        hilo.start();

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
private void jBtnGuardarActionPerformed(java.awt.event.ActionEvent evt) {
        ///////////// SE GRABAN LOS CAMPOS EN LA TABLA docmov
        Metodos_Sql metodosbd = new Metodos_Sql();
 
        java.util.Date utilDate = new java.util.Date();
        java.sql.Date DOC_FECHA = new java.sql.Date(utilDate.getTime());
 
        int exito = metodosbd.guardar_docmov(
                jTextFieldDOC_NUMERO .getText(),
                jTextFieldDOC_COMEN1 .getText(),
                jTextFieldDOC_COMEN2 .getText(),
                jDateChooserDOC_FECHA.getDate(),
                jComboBoxDOC_ACTIVO  .getSelectedItem().toString(),
                jComboBoxMOV_CENCOS  .getSelectedItem().toString(),
                jLabelDOC_NUMMEM     .getText(),
                jComboBoxDOC_CODSUC  .getSelectedItem().toString(),
                jLabelMOV_HORA       .getText(),
                jComboBoxDOC_CODPER  .getSelectedItem().toString());
 
        if (exito > 0) {
 
            JOptionPane.showMessageDialog(null, "Los datos se han guardado correctamente",
                    "Éxito en la operación", JOptionPane.INFORMATION_MESSAGE);
                jTextFieldDOC_NUMERO .setText(null);
                jTextFieldDOC_COMEN1 .setText(null);
                jTextFieldDOC_COMEN2 .setText(null);
                DOC_FECHA            .toLocalDate();
                jComboBoxDOC_ACTIVO  .setSelectedItem("doc_activo");
                jComboBoxMOV_CENCOS  .setSelectedItem("doc_cencos");
                jLabelDOC_NUMMEM     .setText(null);
                jComboBoxDOC_CODSUC  .setSelectedItem("doc_codsuc");
                jLabelMOV_HORA       .setText(null);
                jComboBoxDOC_CODPER  .setSelectedItem("doc_codper");
 
            DefaultTableModel model = (DefaultTableModel) jTableEntradasSalidas.getModel();
            model.setRowCount(0);
            cargar();
 
        } else {
 
            JOptionPane.showMessageDialog(null, "Los datos no se pudieron guardar\n"
                    + "Inténtelo nuevamente", "Error en la operación", JOptionPane.ERROR_MESSAGE);
 
        }
        ///////////// FIN DE: SE GRABAN LOS CAMPOS..............
 
        ///////////// SE GRABAN LOS CAMPOS EN LA TABLA movinv
        int exito1;
        exito1 = metodosbd.guardar_docmovinv
                (jComboBoxPRD_CODIGO.getSelectedItem().toString(),
                jTextFieldDOC_NUMERO.getText(),
                jDateChooserDOC_FECHA.getDate(),
                jComboBoxTAB_CODIGO.getSelectedItem().toString(),
                jComboBoxIME_UNDMED.getSelectedItem().toString(),
                jTextFieldMOV_CANTID.getText(),
                jTextFieldMOV_COSTO.getText(),
                txtUser.getText(),
                jLabelMOV_TOTAL.getText(),
                jLabelMOV_TIPO.getText(),
                jTableEntradasSalidas.getValueAt(0, 0).toString(),
                jLabelMOV_HORA.getText(),
                jComboBoxDOC_ACTIVO.getSelectedItem().toString(),
                jComboBoxDOC_CODSUC.getSelectedItem().toString(),
                jComboBoxALM_CODIGO.getSelectedItem().toString(),
                jComboBoxMOV_CENCOS.getSelectedItem().toString(),
                jTableEntradasSalidas.getValueAt(0, 8));
    }

En el evento del botón Guardar el JLabel me da el siguiente error: "incompatible types: String cannot be converted to Date".

Cualquier sugerencia o ayuda será bienvenida!!!.

Saludos..
VENTANA_INICIAL
VENTANA_RELLENA
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

Problema al intentar recoger la hora en un JLabel

Publicado por Tom (1831 intervenciones) el 01/07/2021 10:13:10
Pues el problema va a ser, casi con toda seguridad que "String cannot be converted to Date".
Aparte de eso ... ¿ para qué utilizas un "jLabel oculto" ? ¿ No sería mejor usar un objeot tipo Date sin más ?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Marvin
Val: 5
Ha aumentado su posición en 768 puestos en Java (en relación al último mes)
Gráfica de Java

Problema al intentar recoger la hora en un JLabel

Publicado por Marvin (2 intervenciones) el 01/07/2021 21:11:31
El error ya lo había colocado al final......."En el evento del botón Guardar el JLabel me da el siguiente error: "incompatible types: String cannot be converted to Date".

El caso de colocar el JLabel oculto es que sólo me interesa tener la hora desde otra clase para poder insertarla al guardar en las tablas MySql.

Comentas que mejor sería usar un objeto tipo Date, me parece bien pero quisiera saber como lo puedo hacer con java.sql.time (Soy novato en estos temas).

Espero por comentarios...
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Problema al intentar recoger la hora en un JLabel

Publicado por Tom (1831 intervenciones) el 02/07/2021 09:58:49
No captaste la ironía ... No es nada difícil entender ese mensaje, creo yo: alguien está esperando recibir un tipo Date .. y le estás pasando un String.
Y además, no tienes más que ver la línea en la que se produce la excepción (que, por supuesto, no la has mirado porque no te parece interesante).

https://docs.oracle.com/javase/8/docs/api/java/util/Date.html
https://docs.oracle.com/javase/8/docs/api/java/sql/Date.html
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar