Taller 2 - Construcción de una interfaz grafica

1. Si la interfaz gráfica de nuestro programa va ha ser la siguiente debemos reconocer los paneles, los cuales van a contener los objetos, en este caso, las etiquetas, los botones las cajas de texto.


2. Posteriormente vamos a trabajar únicamente en el primer panel, en este caso el panelDatos.


InterfazEmpleado.java

 
import javax.swing.JFrame;
import javax.swing.JPanel;

public class InterfazEmpleado extends JFrame
{
   public InterfazEmpleado( Empleado e )
    {
        setTitle( "Sistema de Empleados de Emssanar" );
        setLocationRelativeTo(null); //Ubica la ventana en el cento
        setVisible(true); //Mostramos la ventana
        setSize( 530, 530 ); //Definimos dimensiones Ancho=530, Alto=530
        setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE );//Forzamos que se cierre la ventana cuando demos Cerrar
    }

   public static void main(String[] args) {
      Empleado e= new  Empleado();
      new InterfazEmpleado(e);
   }
}

Empleado.java

 
public class Empleado
{
    // Atributos
    private String nombre; //Nombre
    private String apellido; //Apellido
    private int sexo; //Sexo o genero
    private Fecha fechaNacimiento; //Fecha de nacimiento
    private Fecha fechaIngreso;// Fecha de ingreso
    private String imagen; //Ruta de la imagen
    private int salario; //Salario
    // Métodos
    //Inicializa un empleado con la información básica. 

    public void inicializar( String pNombre, String pApellido, int pSexo, Fecha pFechaN, Fecha pFechaI, int pSalario )
    {        
    }
    //Retorna el apellido del empleado
    public String darApellido( )
    {       
    }
    //Retorna la fecha de ingreso del empleado en una cadena
    public String darFechaIngreso( )
    {       
    }
    //Retorna la fecha de nacimiento del empleado en una cadena
    public String darFechaNacimiento( )
    {        
    }
    //Retorna la ruta donde se encuentra la imagen del empleado
    public String darImagen( )
    {        
    }
    //Retorna el nombre del empleado
    public String darNombre( )
    {        
    }
    //Retorna el salario del empleado
    public int darSalario( )
    {        
    }
    //Retorna el sexo del empleado.
    public int darSexo( )
    {        
    }
    //Retorna la edad de la persona en años.
     public int darEdad( )
    {   
    }
    //Retorna la antigüedad del empleado en años.
    public int darAntiguedad( )
    {   
    }
    //Este método sirve para saber las prestaciones del empleado usando la fórmula: p = (a * s)/12 (p: prestaciones, a: antigüedad, s: salario). 

    public double darPrestaciones( )
    {        
    }
    //Cambia la fecha de ingreso del empleado. 

    public void cambiarFechaIngreso( Fecha pFechaIngreso )
    {
    }
    //Cambia la ruta donde está la imagen del empleado. 

    public void cambiarImagen( String pImagen )
    {
    }
    //Cambia el salario del empleado. 

    public void cambiarSalario( int pSalario )
    {
    }
    // Puntos de Extensión
    //Método de extensión 1
    public String metodo1( )
    {        
    }
    //Método de extensión 2
    public String metodo2( )
    {
        
    }
}

Fecha.java

 
import java.util.Calendar;
import java.util.GregorianCalendar;

//Esta clase sirve para representar una fecha y hacer algunas operaciones básicas
public class Fecha
{   // Atributos
    //Día del mes
    private int dia;
    private int mes;//Mes
    private int anio; //año
    // Métodos
    //Inicializa una fecha con los parámetros proporcionados 

    public void inicializar( int d, int m, int a )
    {  
    }
    //Construye una nueva fecha inicializada en el día de hoy. 

    public void inicializarHoy( )
    {   
    }
    //Retorna el día de esta fecha
    public int darDia( )
    {
        
    }
    //Retorna el mes de esta fecha
    public int darMes( )
    {
        
    }
    //Retorna el año de esta fecha
    public int darAnio( )
    {
        
    }
    //Este método sirve para dar la diferencia en meses que hay entre dos fechas.
    public int darDiferenciaEnMeses( Fecha fecha )
    {
       
    }
    //Retorna una cadena que representa la fecha
    public String toString( )
    {
       
    }
}

PanelDatos.java

   
import java.awt.GridBagConstraints;
import java.awt.GridBagLayout;
import java.awt.Insets;
import java.io.ByteArrayOutputStream;
import java.io.FileInputStream;
import java.io.IOException;

import javax.swing.ImageIcon;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JTextField;
import javax.swing.border.CompoundBorder;
import javax.swing.border.EmptyBorder;
import javax.swing.border.TitledBorder;
/**
 * En este panel se muestran los datos del empleado
 */
public class PanelDatos extends JPanel
{

    private JLabel labNombre; //Etiqueta del nombre
    private JLabel labApellido;// Etiqueta del apellido
    private JLabel labFIngreso; //Etiqueta de la fecha de ingreso
    private JLabel labFNacimiento; //Etiqueta de la fecha de nacimiento
    private JLabel labSexo;//Etiqueta del sexo
    private JTextField txtNombre; //Campo de texto para el nombre
    private JTextField txtApellido;//Campo de texto para el apellido
    private JTextField txtFIngreso; //Campo de texto para la fecha de Ingreso
    private JTextField txtFNacimiento;//Campo de texto para la fecha de nacimiento
    private JTextField txtSexo;//Campo de texto para el sexo
    private JLabel labImagen;//Etiqueta donde se muestra la imagen
    //-----------------------------------------------------------------
    // Constructores
    //-----------------------------------------------------------------
    /**
     * Construye el de Datos del empleado.
     */
    public PanelDatos( )
    {
        GridBagLayout gridbag = new GridBagLayout( );
        setLayout( gridbag );
        setBorder( new CompoundBorder( new EmptyBorder( 0, 0, 5, 0 ), new TitledBorder( "Datos Personales" ) ) );

        GridBagConstraints gbc;

        labNombre = new JLabel( "Nombre: " );
        gbc = new GridBagConstraints();
        gbc.gridx=0; //ubicacion X dentro de la rejilla
        gbc.gridy=0; //ubicacion Y dentro de la rejilla
        gbc.gridwidth=1;// Cuantas columnas ocupa
        gbc.gridheight=1; //Cuantas filas ocupa
        gbc.weightx=1; //Estirarte en X
        gbc.weighty=1; //Estirarse en Y
        gbc.anchor = GridBagConstraints.WEST;
        add( labNombre, gbc );

        //Completar los demas
        txtNombre = new JTextField( 15 );
        gbc.gridx=1; //ubicacion X dentro de la rejilla
        gbc.gridy=0; //ubicacion Y dentro de la rejilla
        gbc.gridwidth=1;// Cuantas columnas ocupa
        gbc.gridheight=1; //Cuantas filas ocupa
        //gbc.anchor = GridBagConstraints.EAST; //Si necesito cambiar de orientacion
        add( txtNombre, gbc );
        txtNombre.setEnabled( false );        
    }    
    // Métodos    
    public void actualizarCampos( String nombre, String apellido, String sexo, String fechaI, String fechaN, String imagen )
    {        
    }
    /**
     * Este método se usa para cargar la información de la imagen. Si no se leen los bytes de la imagen, entonces se depende del MediaTracker.
     * @param imagen Ruta donde se encuentra la imagen. imagen!=null y imagen corresponde a la ruta de una imagen.
     * @return Retorna la imagen.
     * @throws IOException Se lanza esta excepción si no se puede leer la imagen.
     */
    private byte[] cargarImagen( String imagen ) throws IOException
    {

        ByteArrayOutputStream baos = new ByteArrayOutputStream( );
        FileInputStream fin = new FileInputStream( imagen );
        int data = 0;
        while( data != -1 )
        {
            data = fin.read( );
            baos.write( data );
        }

        return baos.toByteArray( );
    }

}

Recordar



0 comentarios: