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
Suscribirse a:
Enviar comentarios (Atom)



0 comentarios: