Java - Pasar dato de un jFrame a otro

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

Pasar dato de un jFrame a otro

Publicado por Javier (7 intervenciones) el 03/06/2017 01:04:41
Bueno les comento. Tengo una ventana de registro de prendas, en el cual debo registrar un proveedor. A este ultimo lo selecciono desde otro jframe que tiene un objeto buscador, al dar doble click en la fila de la tabla cierra la ventana y devuelve el nombre del proveedor en un jtextfield.
El metodo agregar funciona, pero el metodo modificar tiene un error: java.lang.NullPointerException

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
public void agregar(){
    con = new ControladorPrendas();
    Prenda p = new Prenda();
 
    p.setProducto(txtProducto.getText());
    p.setPrecioCompra(Float.parseFloat(txtPrecioCompra.getText()));
    p.setImagen(txtImagen.getText());
 
    Categoria c = (Categoria)cboCategoria.getSelectedItem();
    p.setIdCategoria(c.getIdCategoria());
 
    String IdMarca;
    int fila = SelectMarca.tablaSelectMarca.getSelectedRow();
    modelo = (DefaultTableModel) SelectMarca.tablaSelectMarca.getModel();
    IdMarca = SelectMarca.tablaSelectMarca.getValueAt(fila, 0).toString();
    p.setIdMarca(Integer.parseInt(IdMarca));
 
 
    String idProveedor;
    int Otrafila = selectProveedor.tablaSelectProveedor.getSelectedRow();
    modelo = (DefaultTableModel) selectProveedor.tablaSelectProveedor.getModel();
    idProveedor = selectProveedor.tablaSelectProveedor.getValueAt(Otrafila, 0).toString();
    p.setIdProveedor(Integer.parseInt(idProveedor));
    p.setTalle(txtTalle.getText());
    p.setPrecioVenta(Float.parseFloat(txtPrecioVenta.getText()));
 
    con.addPrenda(p);
}
 
public void modificar(){
    con = new ControladorPrendas();
    Prenda p = new Prenda();
 
    p.setIdPrenda(Integer.parseInt(txtCodigo.getText()));
    p.setProducto(txtProducto.getText());
    p.setPrecioCompra(Float.parseFloat(txtPrecioCompra.getText()));
    p.setImagen(txtImagen.getText());
 
    Categoria c = (Categoria)cboCategoria.getSelectedItem();
    p.setIdCategoria(c.getIdCategoria());
 
 
    String IdMarca;
    int fila = SelectMarca.tablaSelectMarca.getSelectedRow();
    modelo = (DefaultTableModel) SelectMarca.tablaSelectMarca.getModel();
    IdMarca= SelectMarca.tablaSelectMarca.getValueAt(fila, 0).toString();
    p.setIdMarca(Integer.parseInt(IdMarca));
 
 
    String idProveedor;
    int Otrafila = selectProveedor.tablaSelectProveedor.getSelectedRow();
    modelo = (DefaultTableModel) selectProveedor.tablaSelectProveedor.getModel();
    idProveedorDeSelectProveedores = selectProveedor.tablaSelectProveedor.getValueAt(Otrafila, 0).toString();
    p.setIdProveedor(Integer.parseInt(idProveedor));
 
    p.setTalle(txtTalle.getText());
    p.setPrecioVenta(Float.parseFloat(txtPrecioVenta.getText()));
 
    con.editPrenda(p);
}
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
Imágen de perfil de Miguel Ángel

Pasar dato de un jFrame a otro

Publicado por Miguel Ángel (5 intervenciones) el 04/06/2017 20:19:48
En algunas de las practicas que yo he tenido que hacer, tenia muchos errores de este tipo, y al final era muy simple.

Como consejo, lo primero es que no pienses que es algo grave, y es facil de corregir. El problema es saber donde esta exactamente.

Cuando a mi me ocurria, era simplemente porque no declaraba una clase gestor antes de hacer uso de ella . De manera que cuando queria hacer uso de algun metodo de la misma, el interprete no sabia a que gestor me estaba refiriendo. De ahi el error de NULL POINTER.

De manera, que te diría que uses el debuger de tu entorno para que puedas ver cual es el valor de las variables. Chequeando, cada una de las variables, verás que algunas tienen un valor y otras otro, hasta que te encuentres con una que tenga un valor NULL, por lo que ahí será donde te esta dando error.

De todas formas, te puede ayudar mucho el debugger.

if (sabes utilizar el debugger de tu entorno) {

perfecto;

} else {

te lo explico encantado ;

}

Deberás pinchar encima del numero de la linea que te esta dando error. Verás que se pone alguna señal roja. Es un break point.
Ahora vete a tu main, y pincha boton derecho debug file. Simplemente haz uso de tu programa como estabas haciendo antes, y llegará un punto en que se pare la ejecucion de tu programa en el break point.

En ese momento pulsa F8, y vete justo a las variables de la linea en la que tengas el breakpoint. Con que pongas encima la flechita del raton, te saldra encima el valor de las variables.

Seguramente en alguan de esas variables, tendras alguna de valor NULL y ese es el error.

Si lo lees es muy complicado, pero de todas formas en youtube puedes ver cualquier tutorial para aprender a usar el debuger.

Te paso un link para que veas que es algo sencillo.

https://www.youtube.com/watch?v=5_jTMXOcteo

Un saludo y espero haberte servido de ayuda!
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