021 - Aplicación de Stock con Java. Hibernate – MySQL – JPA. Creando pantalla principal.

Después de haber diseñado todos los formularios de referencia, movimientos y reportes, debemos de crear un formulario tipo “JFrame” que servirá de pantalla principal o acceso para cada módulo de nuestro sistema. La pantalla principal estará compuesta por una “Barra de Menú” y una “Barra de Herramientas”. El nombre del JFrame será “Principal”. A continuación una imagen con la descripción general del diseño. (Clic sobre la imagen para ampliar).
Imagen con la especificación de cada elemento. Estos elementos como cualquier otro con las que se haya trabajado, se agregan desde la paleta con “arrastrar y soltar” al lugar correspondiente. (Clic sobre la imagen para ampliar).
La “Barra de Menú” está compuesta por los siguientes “Menús”: Archivos, Referenciales, Transacciones, Informes y Ayuda. Cada elemento se agrega arrastrando y soltando al lugar correspondiente desde la paleta y modificando el nombre por defecto del elemento. A su vez cada “menú” tiene sus elementos que se van a desplegar al hacer clic sobre el ella. Una imagen con los elementos desplegados para entender mejor. (Clic sobre la imagen para ampliar).
A continuación vemos una imagen con ciertos métodos agregados en el constructor de formulario “Principal” que hay que tener en cuenta y las importaciones que necesitamos. También hay que tener en presente el “LookAndFeel”, normalmente para que no se deforme el formulario utilizamos el "Windows". (Clic sobre la imagen para ampliar).
Completado la parte del diseño debemos de crear los métodos que nos permitirán ejecutar cada uno de los formularios que hemos creada hasta ahora. Abajo todos los métodos que estaremos utilizando en el formulario “Principal”.
Código Java
    private void llamarVentas(){
//Creamos una instancia del formulario VentaApp en este caso.
//Se le pasan dos parámetros (this, true), el primero indica el formulario padre, en este caso "Principal".
//El segundo si es modal o no.
VentaApp v = new VentaApp(this, true);
//Indicamos que se muestren las opciones "minimizar", "maximizar" y "cerrar"
v.setDefaultCloseOperation(HIDE_ON_CLOSE);
//Indicamos el título del formulario.
v.setTitle("Formulario de Ventas");
//La hacemos visible.
v.setVisible(true);
}
//Los pasos para llamar cada formulario son iguales a la anterior.
private void llamarCompras(){
CompraApp c = new CompraApp(this, true);
c.setDefaultCloseOperation(HIDE_ON_CLOSE);
c.setTitle("Formulario de Compras");
c.setVisible(true);
}

private void llamarTipo(){
TipoApp t = new TipoApp(this, true);
t.setDefaultCloseOperation(HIDE_ON_CLOSE);
t.setTitle("Formulario de Tipos de Artículos");
t.setVisible(true);
}

private void llamarArticulo(){
ArticuloApp a = new ArticuloApp(this, true);
a.setDefaultCloseOperation(HIDE_ON_CLOSE);
a.setTitle("Formulario de Artículos");
a.setVisible(true);
}

private void llamarCliente(){
ClienteApp cl = new ClienteApp(this, true);
cl.setDefaultCloseOperation(HIDE_ON_CLOSE);
cl.setTitle("Formulario de Clientes");
cl.setVisible(true);
}

private void llamarFuncionario(){
FuncionarioApp f = new FuncionarioApp(this, true);
f.setDefaultCloseOperation(HIDE_ON_CLOSE);
f.setTitle("Formulario de Funcionarios");
f.setVisible(true);
}

private void llamarProveedor(){
ProveedorApp p = new ProveedorApp(this, true);
p.setDefaultCloseOperation(HIDE_ON_CLOSE);
p.setTitle("Formulario de Proveedores");
p.setVisible(true);
}

private void llamarReporteVenta(){
ReporteVenta rv = new ReporteVenta(this, true);
rv.setDefaultCloseOperation(HIDE_ON_CLOSE);
rv.setTitle("Reportes de Ventas");
rv.setVisible(true);
}

private void llamarReporteCompra(){
ReporteCompra rc = new ReporteCompra(this, true);
rc.setDefaultCloseOperation(HIDE_ON_CLOSE);
rc.setTitle("Reportes de Compras");
rc.setVisible(true);
}
El siguiente paso es agregar eventos a nuestros “Menús” y “Botones”. El tipo de evento que utilizaremos es el “ActionPerformed”. Los métodos que creamos más arriba, cada una tiene el nombre bien especificado para saber a que formulario llama, por tanto será cuestión de enlazar con cada menú y botón correspondiente. Abajo una imagen de referencia para manejar los eventos y la lista de “Eventos” respectivos.
Código Java
    private void jMenuItem1ActionPerformed(java.awt.event.ActionEvent evt) {                                           
//Evento para menú "Salir"
System.exit(0);
}

private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
llamarVentas();
}

private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) {
llamarCompras();
}

private void jMenuItem7ActionPerformed(java.awt.event.ActionEvent evt) {
llamarVentas();
}

private void jMenuItem8ActionPerformed(java.awt.event.ActionEvent evt) {
llamarCompras();
}

private void jMenuItem2ActionPerformed(java.awt.event.ActionEvent evt) {
llamarTipo();
}

private void jMenuItem3ActionPerformed(java.awt.event.ActionEvent evt) {
llamarArticulo();
}

private void jMenuItem4ActionPerformed(java.awt.event.ActionEvent evt) {
llamarCliente();
}

private void jMenuItem5ActionPerformed(java.awt.event.ActionEvent evt) {
llamarFuncionario();
}

private void jMenuItem6ActionPerformed(java.awt.event.ActionEvent evt) {
llamarProveedor();
}

private void jMenuItem9ActionPerformed(java.awt.event.ActionEvent evt) {
llamarReporteVenta();
}

private void jMenuItem10ActionPerformed(java.awt.event.ActionEvent evt) {
llamarReporteCompra();
}
Completado todo lo anterior podremos ejecutar nuestro “Principal”. El último punto que veremos en otra entrada del blog será como compilar y obtener el “Executable Jar File (.jar)”. (Clic en la imagen para ampliar).

5 comentarios :

  1. Buenas amigo... me a servido de mucho todo esto.. tengo una pequeña consulta.. Viste que tengo diseñado ya mi factura en ireport todo super... pero a la hora de imprimir ya en una impresora matricial me sale mal... por ahi lei que se puede dar formato desde java para que salga adecuada a la hoja .. tengo la hoja que viene triplicada... de repente si sabes algo y me puedes orientar... desde ya gracias y saludos amigo..

    ResponderEliminar
    Respuestas
    1. Que tal amigo. Por lo general yo suelo hacer los reportes con un tamaño de hoja personalizado, no he tenido problemas hasta ahora. No tengo conocimiento de cómo ajustar la el tamaño de hoja desde java lastimosamente.

      Eliminar
    2. Este comentario ha sido eliminado por el autor.

      Eliminar
  2. Entiendo amigo... y nunca lo imprimiste asi en una impresora matricial.. algo asi derepente

    ResponderEliminar