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: