elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: (TUTORIAL) Aprende a emular Sentinel Dongle By Yapis


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  Java
| | | |-+  Boton retirar JAVA
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Boton retirar JAVA  (Leído 1,848 veces)
padiuwu

Desconectado Desconectado

Mensajes: 34


Ver Perfil
Boton retirar JAVA
« en: 22 Abril 2019, 02:30 am »

Alguien que me pueda ayudar a reducir este codigo, creo que tengo demasiados if
Código
  1. if (e.getSource() == this.forminventario.btnRetirar) {
  2.            int fila = this.forminventario.tbProducto.getSelectedRow();
  3.            if (fila >= 0) {
  4.                try {
  5.                    int codigo = Integer.parseInt(modelotabla.getValueAt(fila, 0).toString());
  6.                    int oldStock = dbproducto.getProducto(codigo).getStock();
  7.                    if (oldStock <= 0) {
  8.                        JOptionPane.showMessageDialog(null, "*EL PRODUCTO NO ESTÁ DISPONIBLE*", "Error", 0);
  9.                    } else {
  10.                        int retirar = Integer.parseInt(JOptionPane.showInputDialog(null, "NUMERO DE PRODUCTOS A RETIRAR", "Retiro de Producto", 3));
  11.                        if (dbproducto.isExiste(codigo)) {
  12.  
  13.                            if (retirar >= oldStock) {
  14.                                dbproducto.retirar(codigo, (0));
  15.                                JOptionPane.showMessageDialog(null, "PRODUCTO RETIRADO CORRECTAMENTE", "Success", 1);
  16.                                cargarTabla("");
  17.                            } else if (retirar != 0) {
  18.                                dbproducto.retirar(codigo, (oldStock - retirar));
  19.                                JOptionPane.showMessageDialog(null, "PRODUCTO RETIRADO CORRECTAMENTE", "Success", 1);
  20.                                cargarTabla("");
  21.                            } else {
  22.                                JOptionPane.showMessageDialog(null, "*ERROR*", "Error", 0);
  23.                            }
  24.                        }
  25.                    }
  26.                } catch (Exception ex) {
  27.                    Logger.getLogger(ControladorProducto.class.getName()).log(Level.SEVERE, null, ex);
  28.                }
  29.            } else {
  30.                JOptionPane.showMessageDialog(forminventario, "SELECCIONE UN REGISTRO");
  31.            }
  32.        }


« Última modificación: 22 Abril 2019, 20:55 pm por padiuwu » En línea

rub'n


Desconectado Desconectado

Mensajes: 1.217


(e -> λ("live now")); tatuar -> λ("α");


Ver Perfil WWW
Re: Boton retirar JAVA
« Respuesta #1 en: 22 Abril 2019, 02:34 am »

No uses geshi nunca, como quinta ves que te lo decimos.

No hace falta que crees otro tema, usa el botón editar.

Edita los otros temas y así aprendes.

Con respecto a la pregunta, divide y vencerás, distribuye esos if en métodos que te retornen valores booleanos, o sin retorno, tienes muchas maneras de resolverr.


« Última modificación: 22 Abril 2019, 11:08 am por rub'n » En línea



rubn0x52.com KNOWLEDGE  SHOULD BE FREE.
If you don't have time to read, you don't have the time (or the tools) to write, Simple as that. Stephen ki
CalgaryCorpus


Desconectado Desconectado

Mensajes: 323


Ver Perfil WWW
CalgaryCorpus
« Respuesta #2 en: 22 Abril 2019, 21:25 pm »

En la linea 11 preguntas si El products existe, pero en la linea 6 preguntaste si habia stock. Es posible que El producto no exista en ese punto?
Para mi, parece imposible y por tanto superfluo hacer ese if ahi.

Los ifs que comparan retirar y oldstock hacen lo mismo para Las 2 primeras condiciones. Por que no hacer solo 1 if para ambos casos (por ejemplo if retirar > 0 y quedarse solo con El codigo maa generico (El que resta oldStock y retirar)

No captures la exception aqui para disminuir El tamaño de este codigo y en general no captures la exception generica, Sino captura solo la exception especifica que se produce, tal vez la exception ocurre porque no chequeas que El products existe ANTES de obtener El stock?

« Última modificación: 22 Abril 2019, 21:31 pm por CalgaryCorpus » En línea

Aqui mi perfil en LinkedIn, invitame un cafe aqui
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines