2

Hola gente de stack tengo un problema y es el siguiente:

Quiero traer los datos de mi LISTA (JPanel) a unos JTextField, y lo estuve haciendo con el evento ListSelection, el problema es que solo sé traer los datos de tipo String y no los de tipo int, ni tampoco el tipo Date, intente hacerle un casteo pero ninguno de los que probé me dieron resultado, les dejo un ejemplo de como traigo el dato de tipo String y me funciona, pero el de tipo int y Date no me trae los datos por un error de casteo. Solamente me falta castear de forma correcta, y con algunos ejemplos de google ninguno me dio resultado, espero que se me entienda y me puedan ayudar.

private void listContratoValueChanged(javax.swing.event.ListSelectionEvent evt) {                                          
  // ITEM ACTUAL SELECCIONADO
  if(!this.listContrato.isSelectionEmpty()) {
    // obtengo el item seleccionado
    Contrato contratos = (Contrato) this.listContrato.getSelectedValue();

    //ASIGNAR VALORES
    this.labelId.setText(contratos.getIdContrato().toString());
    this.txtLugar.setText(contratos.getLugar());
    this.txtFecha.getText();
    this.txtCantidad.getText();
    this.txtTotal.getText();
  }
}

Me retornan los datos de tipo String como el Lugar, solamente, me falta retornar la cantidad y la fecha que son de tipo Date, probé casteando, al final con .toString() pero no tuve resultados, saludos.


Probé con:

this.txtFecha.getText(contratos.getFecha().toString());
this.txtCantidad.getText(contratos.getCantidad().toString());

También probé:

 precio = Double.parseDouble(this.txtPrecio.getText());
 String p = String.valueOf(this.txtPrecio.getText());

Pero sigo sin poder traer mis datos de tipo int ni Date.

Saludos! espero respuestas!

JohnnyTB
  • 2,592
  • 1
  • 8
  • 17
  • ¿Has probado a hacerlo al revés? Es decir, declara e inicializa todo en String y luego al obtenerlo castealo cada uno a su tipo original. Por ejemplo de String a int, de String a date, etc. Espero que te sirva de ayuda, un saludo. Te dejo un enlace de esta misma comunidad que tiene una guía de casteo de tipos de datos, échale un vistazo. [Enlace](https://es.stackoverflow.com/questions/1487/guia-definitiva-de-conversi%C3%B3n-de-tipos-en-java) – Riancast Nov 27 '19 at 01:15
  • Pero ¿la clase `Contrato` no tiene *getters* también para esos datos? Viendo que en los otros usas *getters* de `Contrato`, ¿por qué para la fecha, la cantidad, etc no usas también *getters* de la clase? – A. Cedano Nov 27 '19 at 09:56
  • El error puede venir por algún carácter extraño del this.txtPrecio.getText() que obviamente no puede ser transformado a double, o que por ejemplo le falta la , o el punto etc. – EduBw Nov 27 '19 at 13:06
  • ¿Cuando haces `this.txtFecha.getText(contratos.getFecha().toString());` qué error te da o que resultado obtienes? – Fernando Oxyde Nov 27 '19 at 17:03

1 Answers1

2

Debes meterlo en una variable. puesto que no tengo tus clases te pongo mi ejemplo. yo tengo mi clase paciente que tinee

private int edad 
private String nombre 
private int codigo paciente

. En el Jframe tengo unos textfiel donde aparece los nombres la edad etc. Yo le hago un paseo normal y corrienote para crear el Paciente debo de setear lo datos de sus clase y lo hago asi

  private void bntAgregarActionPerformed(java.awt.event.ActionEvent evt) {                                           
        Cita nuevaCita;
        String nombrePaciente = jNombre.getText();
        String especialidad = cmbEspecialidad.getSelectedItem().toString();
        String nombreMedico = cmbDoctor.getSelectedItem().toString();
        Date fechaD = (Date) jSFecha.getValue();
        int codPac = Integer.parseInt(cmbPaciente.getSelectedItem().toString());
        int edadNum = Integer.parseInt(jEdad.getText());
        Paciente nPaciente = new Paciente(codPac, nombrePaciente, edadNum);
unknow
  • 1,896
  • 9
  • 35