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

uso de return en un metodo

Estas en el tema de uso de return en un metodo en el foro de Java en Foros del Web. buenas, tengo una duda: al rellenar un formulario de Jtextfields, quiero que al pulsar el boton de actualizar me revise si estan los campos rellenados ...
  #1 (permalink)  
Antiguo 19/05/2016, 02:39
Avatar de chosbuster  
Fecha de Ingreso: marzo-2016
Mensajes: 10
Antigüedad: 8 años
Puntos: 0
uso de return en un metodo

buenas, tengo una duda: al rellenar un formulario de Jtextfields, quiero que al pulsar el boton de actualizar me revise si estan los campos rellenados y en caso de que falte alguno, mande un mensaje concreto de que campo falta por rellenar. si lo pongo directamente me funciona bien, pero si lo hago a traves de un metodo, no me funciona, me sale que el ultimo return no es necesario. gracias por adelantado.

asi seria directamente y no da problema:

Código:
if (getTxtNombre().getText().equals("")) {
            JOptionPane.showMessageDialog(null, "Falta introducir el nombre del "
                    + "cliente.", "Informacion", JOptionPane.PLAIN_MESSAGE,
                    new ImageIcon((getClass().getResource
                    ("/Mcdonalds/Imagenes/INFO.png"))));
            return;
        }
        if (getTxtPrimerApellido().getText().equals("")) {
            JOptionPane.showMessageDialog(null, "Falta introducir el primer "
                    + "apellido del cliente.", "Informacion", JOptionPane.
                    PLAIN_MESSAGE,new ImageIcon((getClass().getResource
                    ("/Mcdonalds/Imagenes/INFO.png"))));
            return;
        }
        if (getTxtSegundoApellido().getText().equals("")) {
            JOptionPane.showMessageDialog(null, "Falta introducir el segundo "
                    + "apellido del cliente.", "Informacion", JOptionPane.
                    PLAIN_MESSAGE,new ImageIcon((getClass().getResource
                    ("/Mcdonalds/Imagenes/INFO.png"))));
            return;
        }
        if (getTxtEmail().getText().equals("")) {
            JOptionPane.showMessageDialog(null, "Falta introducir el email "
                    + " del cliente.", "Informacion", JOptionPane.PLAIN_MESSAGE
                    ,new ImageIcon((getClass().getResource("/Mcdonalds/Imagenes/"
                    + "INFO.png"))));
            return;
        }
        if (getTxtDireccion().getText().equals("")) {
            JOptionPane.showMessageDialog(null, "Falta introducir la direccion "
                    + " del cliente.", "Informacion", JOptionPane.PLAIN_MESSAGE,
                    new ImageIcon((getClass().getResource("/Mcdonalds/Imagenes/"
                    + "INFO.png"))));
            return;
        }
        if (getTxtTelefono().getText().equals("")) {
            JOptionPane.showMessageDialog(null, "Falta introducir el telefono "
                    + " del cliente.", "Informacion", JOptionPane.PLAIN_MESSAGE,
                    new ImageIcon((getClass().getResource("/Mcdonalds/Imagenes/"
                    + "INFO.png"))));
            return;
        }
        if (getTxtClaveSecreta().getText().equals("")) {
            JOptionPane.showMessageDialog(null, "Falta introducir la clave secreta "
                    + " del cliente.", "Informacion", JOptionPane.PLAIN_MESSAGE,
                    new ImageIcon((getClass().getResource("/Mcdonalds/Imagenes/"
                    + "INFO.png"))));
            return;
        }
asi es como no me funciona:

Código:
public void comprobarCampos(){
        //Comprobamos que ningun campo queda vacio. En caso de que haya alguno 
        //vacio, informamos mediante un mensaje que indica que campo es el que
        //falta por completar.
        if (getTxtNombre().getText().equals("")) {
            JOptionPane.showMessageDialog(null, "Falta introducir el nombre del "
                    + "cliente.", "Informacion", JOptionPane.PLAIN_MESSAGE,
                    new ImageIcon((getClass().getResource
                    ("/Mcdonalds/Imagenes/INFO.png"))));
            return;
        }
        if (getTxtPrimerApellido().getText().equals("")) {
            JOptionPane.showMessageDialog(null, "Falta introducir el primer "
                    + "apellido del cliente.", "Informacion", JOptionPane.
                    PLAIN_MESSAGE,new ImageIcon((getClass().getResource
                    ("/Mcdonalds/Imagenes/INFO.png"))));
            return;
        }
        if (getTxtSegundoApellido().getText().equals("")) {
            JOptionPane.showMessageDialog(null, "Falta introducir el segundo "
                    + "apellido del cliente.", "Informacion", JOptionPane.
                    PLAIN_MESSAGE,new ImageIcon((getClass().getResource
                    ("/Mcdonalds/Imagenes/INFO.png"))));
            return;
        }
        if (getTxtEmail().getText().equals("")) {
            JOptionPane.showMessageDialog(null, "Falta introducir el email "
                    + " del cliente.", "Informacion", JOptionPane.PLAIN_MESSAGE
                    ,new ImageIcon((getClass().getResource("/Mcdonalds/Imagenes/"
                    + "INFO.png"))));
            return;
        }
        if (getTxtDireccion().getText().equals("")) {
            JOptionPane.showMessageDialog(null, "Falta introducir la direccion "
                    + " del cliente.", "Informacion", JOptionPane.PLAIN_MESSAGE,
                    new ImageIcon((getClass().getResource("/Mcdonalds/Imagenes/"
                    + "INFO.png"))));
            return;
        }
        if (getTxtTelefono().getText().equals("")) {
            JOptionPane.showMessageDialog(null, "Falta introducir el telefono "
                    + " del cliente.", "Informacion", JOptionPane.PLAIN_MESSAGE,
                    new ImageIcon((getClass().getResource("/Mcdonalds/Imagenes/"
                    + "INFO.png"))));
            return;
        }
        if (getTxtClaveSecreta().getText().equals("")) {
            JOptionPane.showMessageDialog(null, "Falta introducir la clave secreta "
                    + " del cliente.", "Informacion", JOptionPane.PLAIN_MESSAGE,
                    new ImageIcon((getClass().getResource("/Mcdonalds/Imagenes/"
                    + "INFO.png"))));
            return; (ESTE RETURN ME PONE QUE NO ES NECESARIO)
        }
    }
  #2 (permalink)  
Antiguo 19/05/2016, 05:51
Avatar de Profesor_Falken  
Fecha de Ingreso: agosto-2014
Ubicación: Mountain View
Mensajes: 1.323
Antigüedad: 9 años, 7 meses
Puntos: 182
Respuesta: uso de return en un metodo

Buenas,

Es normal. Ese return no es necesario porque al llegar al final del metodo se hace un return automaticamente.


Un saludo
__________________
If to err is human, then programmers are the most human of us
  #3 (permalink)  
Antiguo 20/05/2016, 01:26
Avatar de chosbuster  
Fecha de Ingreso: marzo-2016
Mensajes: 10
Antigüedad: 8 años
Puntos: 0
Respuesta: uso de return en un metodo

gracias por responder. entonces, porque si lo pongo directamente en el boton funciona, y si lo hago a traves de un metodo, sigue ejecutando el resto de ordenes y no se para ahi hasta que rellene el campo vacio? en teoria me tendria que hacer un return en caso de que uno de los campos este vacio.
  #4 (permalink)  
Antiguo 20/05/2016, 06:16
Avatar de Profesor_Falken  
Fecha de Ingreso: agosto-2014
Ubicación: Mountain View
Mensajes: 1.323
Antigüedad: 9 años, 7 meses
Puntos: 182
Respuesta: uso de return en un metodo

Buenas,

Efectivamente, en caso de que alguno de los campos este vacios, el metodo hace return.

Por que dices que no se para?

Un saludo
__________________
If to err is human, then programmers are the most human of us
  #5 (permalink)  
Antiguo 23/05/2016, 09:12
Avatar de chosbuster  
Fecha de Ingreso: marzo-2016
Mensajes: 10
Antigüedad: 8 años
Puntos: 0
Respuesta: uso de return en un metodo

perdon por tardar en contestar.si lo pongo asi, funciona bien, en caso de que falte algun campo por rellenar, me da la opcion de rellenar el campo y no ejecuta el panel de DECISION, hasta que todos los campos estan rellenados. si lo hago con un metodo, aunque falte algun campo por rellenar,ejecuta el panel de decision automaticamente y sigue.

Código:
//Comprobamos que se ha cargado algun cliente
        if ("".equals(getTxtClaveSecreta().getText())) {
            JOptionPane.showMessageDialog(null, "No ha seleccionado ningun cliente.", "Informacion", JOptionPane.PLAIN_MESSAGE, new ImageIcon((getClass().
                    getResource("/Mcdonalds/Imagenes/INFO.png"))));
            return;
        }
        //Comprobamos que ningun campo queda vacio. En caso de que haya alguno 
        //vacio, informamos mediante un mensaje que indica que campo es el que
        //falta por completar.
        if (getTxtNombre().getText().equals("")) {
            JOptionPane.showMessageDialog(null, "Falta introducir el nombre del "
                    + "cliente.", "Informacion", JOptionPane.PLAIN_MESSAGE,
                    new ImageIcon((getClass().getResource("/Mcdonalds/Imagenes/INFO.png"))));
            return;
        }
        if (getTxtPrimerApellido().getText().equals("")) {
            JOptionPane.showMessageDialog(null, "Falta introducir el primer "
                    + "apellido del cliente.", "Informacion", JOptionPane.PLAIN_MESSAGE, new ImageIcon((getClass().getResource("/Mcdonalds/Imagenes/INFO.png"))));
            return;
        }
        if (getTxtSegundoApellido().getText().equals("")) {
            JOptionPane.showMessageDialog(null, "Falta introducir el segundo "
                    + "apellido del cliente.", "Informacion", JOptionPane.PLAIN_MESSAGE, new ImageIcon((getClass().getResource("/Mcdonalds/Imagenes/INFO.png"))));
            return;
        }
        if (getTxtEmail().getText().equals("")) {
            JOptionPane.showMessageDialog(null, "Falta introducir el email "
                    + " del cliente.", "Informacion", JOptionPane.PLAIN_MESSAGE, new ImageIcon((getClass().getResource("/Mcdonalds/Imagenes/"
                            + "INFO.png"))));
            return;
        }
        if (getTxtDireccion().getText().equals("")) {
            JOptionPane.showMessageDialog(null, "Falta introducir la direccion "
                    + " del cliente.", "Informacion", JOptionPane.PLAIN_MESSAGE,
                    new ImageIcon((getClass().getResource("/Mcdonalds/Imagenes/"
                            + "INFO.png"))));
            return;
        }
        if (getTxtTelefono().getText().equals("")) {
            JOptionPane.showMessageDialog(null, "Falta introducir el telefono "
                    + " del cliente.", "Informacion", JOptionPane.PLAIN_MESSAGE,
                    new ImageIcon((getClass().getResource("/Mcdonalds/Imagenes/"
                            + "INFO.png"))));
            return;
        }
        if (getTxtClaveSecreta().getText().equals("")) {
            JOptionPane.showMessageDialog(null, "Falta introducir la clave secreta "
                    + " del cliente.", "Informacion", JOptionPane.PLAIN_MESSAGE,
                    new ImageIcon((getClass().getResource("/Mcdonalds/Imagenes/"
                            + "INFO.png"))));
            return;
        }

         SI LA PARTE EN ROJO LA PONGO EN UN METODO NO ME HACE LO MISMO.
         EL CODIGO SIGUE EJECUTANDOSE.


        //Pedimos confirmacion de la modificacion.
        int decision = JOptionPane.showConfirmDialog(null, "¿Seguro que quieres "
                + "modificar este cliente?", "Confirmacion de modificacion",
                WIDTH, JOptionPane.WARNING_MESSAGE, new ImageIcon((getClass().
                        getResource("/Mcdonalds/Imagenes/WARNING.png"))));
        //Si la respuesta es positiva procedemos a modificar el cliente y vaciamos 
        //los campos de texto
        if (JOptionPane.OK_OPTION == decision) {
            acciones.modificarCliente();
            acciones.borrarCamposModEliCliente();
        }
  #6 (permalink)  
Antiguo 24/05/2016, 00:11
Avatar de Profesor_Falken  
Fecha de Ingreso: agosto-2014
Ubicación: Mountain View
Mensajes: 1.323
Antigüedad: 9 años, 7 meses
Puntos: 182
Respuesta: uso de return en un metodo

Buenas,

Eso no es posible, tiene que haber algo diferente cuando lo ejecutas desde el metodo.

Para comprobar lo que pasa, puedes utilizar un depurador para inspeccionar las variables.

O bien puedes simplemente imprimir el valor antes de cada if para saber porque no entra:


Código Java:
Ver original
  1. public void comprobarCampos(){
  2.         //Comprobamos que ningun campo queda vacio. En caso de que haya alguno
  3.         //vacio, informamos mediante un mensaje que indica que campo es el que
  4.         //falta por completar.
  5.  
  6.         System.out.println("'" + getTxtNombre().getText() + "'");
  7.         if (getTxtNombre().getText().equals("")) {
  8.             JOptionPane.showMessageDialog(null, "Falta introducir el nombre del "
  9.                     + "cliente.", "Informacion", JOptionPane.PLAIN_MESSAGE,
  10.                     new ImageIcon((getClass().getResource
  11.                     ("/Mcdonalds/Imagenes/INFO.png"))));
  12.             return;
  13.         }
  14.         System.out.println("'" + getTxtPrimerApellido().getText() + "'");
  15.         if (getTxtPrimerApellido().getText().equals("")) {
  16.             JOptionPane.showMessageDialog(null, "Falta introducir el primer "
  17.                     + "apellido del cliente.", "Informacion", JOptionPane.
  18.                     PLAIN_MESSAGE,new ImageIcon((getClass().getResource
  19.                     ("/Mcdonalds/Imagenes/INFO.png"))));
  20.             return;
  21.         }
  22. [...]

Un saludo
__________________
If to err is human, then programmers are the most human of us

Etiquetas: metodo, return
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 07:27.