Recetario de Cocina 1.0
Viruz Blog :: Programación en General :: Java :: Intermedio
Página 1 de 1.
Recetario de Cocina 1.0
Después de un largo tiempo he podido sacar otra aplicación sencilla, aunque aún no esta al 100% ya se encuentra funcional y con el objetivo de que si el usuario desea alguna mejora puedan comentar o en el mejor de los casos si modifican alguno de los Bugs que se encuentren que en realidad son mas validaciones de campos que cualquier otra cosa pero ya estoy trabajando en ello.
La aplicación se trata de un recetario de cocina donde se pueda llevar el control de tus recetas (válgase la redundancia) y por consecuente los pasos de esta que pueda llevar y solo lo realizamos con puros arreglos que a lo largo de todo este tiempo hemos visto ejemplos, esta en su versión 1 igual e iré mejorando hasta llevarlo a una base de datos.
Lo que se necesita conocer
¿Como funciona el programa?
El programa es un poco extenso por lo que resumiré las clases más importantes y los métodos que se debe conocer su funcionamiento (ya ustedes al descargar el programa se darán de cuenta que es lo que hacen todas las clases). El proyecto cuenta con 6 clases (1 clase Main, 2 clases de set y get, 1 JFrame Form que es la ventana principal, 2 JDialog Form).
1. Empezando por la clase Recetas se almacenan:
2. La clase PasosdeRecetas tendrá la información (variables) de cada receta que se crea anteriormente aquí los métodos set y get son:
3. Dentro de la ventana principal se encontrarán los eventos de botón en el que hacen el ABC (Alta, Baja y Consulta) del programa. Aquí hay 2 métodos importantes que son:
En el mismo método al salir del ciclo se realiza un método de ordenamiento para los pasos agregados y por último se pasan como parámetros a la clase de Recetas.
El segundo método se utiliza cuando se eliminan las recetas en la aplicación y sirve para el recorrido de indices en los arreglos.
El JDialog Form de ModificarRecetas cuenta con 5 opciones que son las siguientes:
Nota: Encerre en Try- catch por los OptionPane.
Validaciones:
Autor: Viruz
Enlace: Recetario de Cocina 1.0 en Java
La aplicación se trata de un recetario de cocina donde se pueda llevar el control de tus recetas (válgase la redundancia) y por consecuente los pasos de esta que pueda llevar y solo lo realizamos con puros arreglos que a lo largo de todo este tiempo hemos visto ejemplos, esta en su versión 1 igual e iré mejorando hasta llevarlo a una base de datos.
Lo que se necesita conocer
- Arreglos multidimensionales
- Métodos de ordenamiento
¿Como funciona el programa?
El programa es un poco extenso por lo que resumiré las clases más importantes y los métodos que se debe conocer su funcionamiento (ya ustedes al descargar el programa se darán de cuenta que es lo que hacen todas las clases). El proyecto cuenta con 6 clases (1 clase Main, 2 clases de set y get, 1 JFrame Form que es la ventana principal, 2 JDialog Form).
1. Empezando por la clase Recetas se almacenan:
- nombre: Una receta debe de tener un nombre para identificación.
- elementos: Es un arreglo de la clase que se utilizará para asociar la receta con los pasos.
Código
Clase Recetas
Clase Recetas
/**
*
* @author Viruz
*/
public class Recetas {
private String nombre;
private PasosdeRecetas[] elementos;
public Recetas(String nombre, PasosdeRecetas[] elementos) {
this.nombre = nombre;
this.elementos = elementos;
}
/**
* @return the elementos
*/
public PasosdeRecetas[] getElementos() {
return elementos;
}
/**
* @param elementos the elementos to set
*/
public void setElementos(PasosdeRecetas[] elementos) {
this.elementos = elementos;
}
/**
* @return the nombre
*/
public String getNombre() {
return nombre;
}
/**
* @param nombre the nombre to set
*/
public void setNombre(String nombre) {
this.nombre = nombre;
}
}
2. La clase PasosdeRecetas tendrá la información (variables) de cada receta que se crea anteriormente aquí los métodos set y get son:
- pasos: Número o un índice de pasos que tiene cada receta.
- información: Texto que el usuario vaya agregando en cada paso.
Clases PasosdeRecetas
/**
*
* @author Viruz
*/
public class PasosdeRecetas {
private String informacion;
private PasosdeRecetas pasos;
public PasosdeRecetas (String infor) {
this.informacion = infor;
}
/**
* @return the informacion
*/
public String getInformacion() {
return informacion;
}
/**
* @param informacion the informacion to set
*/
public void setInformacion(String informacion) {
this.informacion = informacion;
}
/**
* @return the pasos
*/
public PasosdeRecetas getPasos() {
return pasos;
}
/**
* @param pasos the pasos to set
*/
public void setPasos(PasosdeRecetas pasos) {
this.pasos = pasos;
}
}
3. Dentro de la ventana principal se encontrarán los eventos de botón en el que hacen el ABC (Alta, Baja y Consulta) del programa. Aquí hay 2 métodos importantes que son:
- agregarPasos(): Primero dentro de un ciclo do-while se pregunta si el usuario desea agregar mas pasos si la respuesta es igual con la opción No se sale.
do {
String paso = JOptionPane.showInputDialog (this,"Inserte el paso "+(contador+1));
if (primero) {
primerNodo.setInformacion(paso);
primero = false;
} else {
otroNodo = new PasosdeRecetas (paso);
}
nodoAux.setPasos(otroNodo);
nodoAux = otroNodo;
contador++;
respuesta2 = JOptionPane.showConfirmDialog(null, "¿Desea insertar otro paso?","¿Continuar?", JOptionPane.YES_NO_OPTION);
if (respuesta2 != 0 && contador == 1) {
JOptionPane.showMessageDialog(null, "Solamente se pueden ingresar Recetas con 2 o más pasos");
respuesta2 = 0;
}
} while (respuesta2 == 0);
En el mismo método al salir del ciclo se realiza un método de ordenamiento para los pasos agregados y por último se pasan como parámetros a la clase de Recetas.
PasosdeRecetas[] elementos = new PasosdeRecetas [contador];
otroNodo = primerNodo;
int i = 0;
do {
try {
elementos[i] = otroNodo;
otroNodo = otroNodo.getPasos();
i++;
} catch (Exception e) {
break;
}
} while (otroNodo != null);
unaLista = new Recetas (nombre, elementos);
listas[indiceListas] = unaLista;
indiceListas++;
El segundo método se utiliza cuando se eliminan las recetas en la aplicación y sirve para el recorrido de indices en los arreglos.
/* Método que Actualiza los Indices al Eliminar una Receta*/
public void setListas (Recetas[] recetas) {
listas = recetas;
for (int i = 0; i < listas.length; i++) {
if (listas == null) {
this.indiceListas = i;
return;
}
}
}
El JDialog Form de ModificarRecetas cuenta con 5 opciones que son las siguientes:
- Modificar paso.
- Eliminar paso.
- Nuevo paso antes.
- Nuevo paso después.
- Salir.
Nota: Encerre en Try- catch por los OptionPane.
try {
paso = Integer.parseInt (JOptionPane.showInputDialog("Inserte el Paso a eliminar"));
/***********Validaciones*********/
if (paso == 1) {
nodos[paso-1].setInformacion(null);
nodos[paso-1].setPasos(null);
nodos[paso-1] = null;
PasosdeRecetas []listaNueva = new PasosdeRecetas [nodos.length];
int cont1 = 0;
int cont2 = 0;
do {
if (nodos[cont1] != null) {
listaNueva[cont2] = nodos[cont1];
cont2++;
}
cont1++;
} while (cont1 < nodos.length);
laLista.setElementos(listaNueva);
JOptionPane.showMessageDialog(null,"Paso Eliminado");
this.dispose();
return;
}
if (paso == nodos.length) {
nodos[paso-2].setPasos(null);
nodos[paso-1].setInformacion(null);
nodos[paso-1].setPasos(null);
nodos[paso-1] = null;
PasosdeRecetas []listaNueva = new PasosdeRecetas [nodos.length];
int cont1 = 0;
int cont2 = 0;
do {
if (nodos[cont1] != null) {
listaNueva[cont2] = nodos[cont1];
cont2++;
}
cont1++;
} while (cont1 < nodos.length);
laLista.setElementos(listaNueva);
JOptionPane.showMessageDialog(null,"Paso Eliminado");
this.dispose();
return;
}
if (nodos[paso-1] != null) {
nodos[paso-1].setInformacion(null);
nodos[paso-2].setPasos(nodos[paso]);
nodos[paso-1].setPasos(null);
nodos[paso-1] = null;
PasosdeRecetas []listaNueva = new PasosdeRecetas [nodos.length];
int cont1 = 0;
int cont2 = 0;
do {
if (nodos[cont1] != null) {
listaNueva[cont2] = nodos[cont1];
cont2++;
}
cont1++;
} while (cont1 < nodos.length);
laLista.setElementos(listaNueva);
JOptionPane.showMessageDialog(null,"Paso Eliminado");
this.dispose();
}
else {
JOptionPane.showMessageDialog (null, "El Paso seleccionado no existe");
}
} catch (HeadlessException | NumberFormatException e) {
JOptionPane.showMessageDialog(null, "Error: Invalid Input!",
"Error", JOptionPane.ERROR_MESSAGE);
}
Validaciones:
- Nombre de la receta - no null.
- Mínimo 2 pasos en una receta.
- Nombre de pasos de recetas - no null.
- Recorrer indices cuando se elimina.
- Modificaciones, consultas y eliminaciones no pueden ir null en los JOptionPane (todos).
- Validar que se consulte cuando no tenga pasos.
- Al borrar y volver insertar se actualice la lista.
- Validar que al dar aceptar no acepta nada.
Vídeo
Descarga el código
Recetario de Cocina
Descarga el código
Recetario de Cocina
Autor: Viruz
Enlace: Recetario de Cocina 1.0 en Java
Viruz Blog :: Programación en General :: Java :: Intermedio
Página 1 de 1.
Permisos de este foro:
No puedes responder a temas en este foro.
|
|