Taller 3 - JOptionPane
import java.awt.BorderLayout; import javax.swing.JFrame; import javax.swing.JPanel; public class InterfazEmpleado extends JFrame { private PanelDatos panDat; //Defino panDat de tipo PanelDatos private PanelSalario panSal;//Defino panSal de tipo PanelSalario private PanelConsultas panCon;//Defino panCon de tipo PanelConsultas private PanelExtensiones panExt;//Defino panExt de tipo PanelExtensiones private JPanel panCentral; // Defino panCentral de tipo JPanel que va a contener al panel panSal y panCon public InterfazEmpleado( Empleado e ) { setTitle( "Sistema de Empleados de Emssanar" ); //Crea el Panel Datos panDat = new PanelDatos( ); panSal = new PanelSalario( this ); panCon = new PanelConsultas( ); panExt = new PanelExtensiones( this ); /*---------------------- * Panel Datos *---------------------- * +Panel central *------Panel Salario *------Panel Consulta * ---------------------- *Panel Extensiones * ---------------------- * */ //El panel central contiene el Panel Salario y el panel consultas panCentral = new JPanel(); panCentral.setLayout( new BorderLayout( ) ); panCentral.add(panSal, BorderLayout.NORTH); panCentral.add(panCon, BorderLayout.SOUTH); // organizo el panel principal getContentPane( ).setLayout( new BorderLayout( ) ); getContentPane( ).add( panDat, BorderLayout.NORTH ); getContentPane( ).add( panCentral, BorderLayout.CENTER ); getContentPane( ).add( panExt, BorderLayout.SOUTH ); 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); } }
´ 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 ) { nombre = pNombre; apellido = pApellido; sexo = pSexo; fechaNacimiento = pFechaN; fechaIngreso = pFechaI; imagen = null; salario = pSalario; } //Retorna el apellido del empleado public String darApellido( ) { return apellido; } //Retorna la fecha de ingreso del empleado en una cadena public String darFechaIngreso( ) { String strFecha = fechaIngreso.toString( ); return strFecha; } //Retorna la fecha de nacimiento del empleado en una cadena public String darFechaNacimiento( ) { String strFecha = fechaNacimiento.toString( ); return strFecha; } //Retorna la ruta donde se encuentra la imagen del empleado public String darImagen( ) { return imagen; } //Retorna el nombre del empleado public String darNombre( ) { return nombre; } //Retorna el salario del empleado public int darSalario( ) { return salario; } //Retorna el sexo del empleado. public int darSexo( ) { return sexo; } //Retorna la edad de la persona en años. public int darEdad( ) { return 0; } //Retorna la antigüedad del empleado en años. public int darAntiguedad( ) { return 0; } //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( ) { return 0; } //Cambia la fecha de ingreso del empleado. public void cambiarFechaIngreso( Fecha pFechaIngreso ) { fechaIngreso = pFechaIngreso; } //Cambia la ruta donde está la imagen del empleado. public void cambiarImagen( String pImagen ) { imagen = pImagen; } //Cambia el salario del empleado. public void cambiarSalario( int pSalario ) { salario = pSalario; } // Puntos de Extensión //Método de extensión 1 public String metodo1( ) { return "Respuesta 1"; } //Método de extensión 2 public String metodo2( ) { return "Respuesta 2"; } }
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 private int dia;//Día del mes 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 ) { dia = d; mes = m; anio = a; } //Construye una nueva fecha inicializada en el día de hoy. public void inicializarHoy( ) { // Usamos un calendario Gregoriano inicializado en el día de hoy GregorianCalendar gc = new GregorianCalendar( ); // Sacamos los valores de día, mes y año del calendario dia = gc.get( Calendar.DAY_OF_MONTH ); mes = gc.get( Calendar.MONTH ) + 1; anio = gc.get( Calendar.YEAR ); } //Retorna el día de esta fecha public int darDia( ) { return dia; } //Retorna el mes de esta fecha public int darMes( ) { return mes; } //Retorna el año de esta fecha public int darAnio( ) { return anio; } //Este método sirve para dar la diferencia en meses que hay entre dos fechas. public int darDiferenciaEnMeses( Fecha fecha ) { int diferencia = 0; int otroAnho = fecha.darAnio( ); int otroMes = fecha.darMes( ); int otroDia = fecha.darDia( ); // Calcula la diferencia en meses diferencia = 12 * ( otroAnho - anio ) + ( otroMes - mes ); return diferencia; } //Retorna una cadena que representa la fecha public String toString( ) { return "" + dia + "-" + mes + "-" + anio; } }
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 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;//Si necesito alinear todo los campos al oeste add( labNombre, gbc ); labApellido = new JLabel( "Apellido: " ); gbc.gridx=0; gbc.gridy=1; //ubicacion X, Y dentro de la rejilla add( labApellido, gbc ); labSexo = new JLabel( "Sexo: " ); gbc.gridx=0; gbc.gridy=2; //ubicacion X, Y dentro de la rejilla add( labSexo, gbc ); labFNacimiento = new JLabel( "Fecha de Nacimiento: " ); gbc.gridx=0; gbc.gridy=3; //ubicacion X, Y dentro de la rejilla add( labFNacimiento, gbc ); labFIngreso = new JLabel( "Fecha de Ingreso: " ); gbc.gridx=0; gbc.gridy=4; //ubicacion X, Y dentro de la rejilla add( labFIngreso, gbc ); txtNombre = new JTextField( 15 ); gbc.gridx=1; gbc.gridy=0; //ubicacion X, Y dentro de la rejilla add( txtNombre, gbc ); txtNombre.setEnabled( false ); txtApellido = new JTextField( 15 ); gbc.gridx=1; gbc.gridy=1; //ubicacion X, Y dentro de la rejilla add( txtApellido, gbc ); txtApellido.setEnabled( false ); txtSexo = new JTextField( 2 ); gbc.gridx=1; gbc.gridy=2; //ubicacion X, Y dentro de la rejilla add( txtSexo, gbc ); txtSexo.setEnabled( false ); txtFNacimiento = new JTextField( 10 ); gbc.gridx=1; gbc.gridy=3; //ubicacion X, Y dentro de la rejilla add( txtFNacimiento, gbc ); txtFNacimiento.setEnabled( false ); txtFIngreso = new JTextField( 10 ); gbc.gridx=1; gbc.gridy=4; //ubicacion X, Y dentro de la rejilla add( txtFIngreso, gbc ); txtFIngreso.setEnabled( false ); labImagen = new JLabel( ); gbc.gridx=2; gbc.gridy=0; //ubicacion X, Y dentro de la rejilla add( labImagen, gbc ); } // 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( ); } }
import java.awt.FlowLayout; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import javax.swing.JButton; import javax.swing.JPanel; import javax.swing.border.TitledBorder; public class PanelExtensiones extends JPanel { //Atributos private InterfazEmpleado interfazEmpleado; private JButton butOpcion1; private JButton butOpcion2; // Constructores public PanelExtensiones( InterfazEmpleado interfaz ) { interfazEmpleado = interfaz; //Asigno la referencia de la Interfaz enpleado a la setBorder( new TitledBorder( "Puntos de Extensión" )); setLayout( new FlowLayout( ) );//Defino el tipo de organizacion butOpcion1 = new JButton( "Opción 1" ); //Creo Boton butOpcion2 = new JButton( "Opción 2" ); //Creo Boton add( butOpcion1 ); //Añado al panel add( butOpcion2 ); //Añado al panel } // Métodos }
import java.awt.FlowLayout; import java.awt.event.ActionEvent; import java.text.DecimalFormat; import java.text.NumberFormat; import javax.swing.JButton; import javax.swing.JLabel; import javax.swing.JPanel; import javax.swing.JTextField; import javax.swing.border.TitledBorder; public class PanelSalario extends JPanel { // Atributos private InterfazEmpleado interfazEmpleado; //Es una referencia a la interfaz de la aplicación private JLabel labSalario; //Etiqueta para el salario private JTextField txtSalario; //El campo de texto para el salario private JButton botonModificarSalario; //Es el botón para modificar el salario // Constructores // Construye el panel con una referencia a la ventana principal de la aplicación public PanelSalario( InterfazEmpleado interfaz ) { interfazEmpleado = interfaz; setBorder(new TitledBorder( "Salario" ) );//Asigno titulo a el Panel setLayout( new FlowLayout( ) ); //Defino el tipo de organizacion labSalario = new JLabel( "Salario: " ); //Creo la Etiqueta Salario add( labSalario ); //Añado la etiqueta Salario al Panel txtSalario = new JTextField( 10 ); //Creo un campo de texto txtSalario.setEnabled( false ); //Deshabilito campo de texto salario add( txtSalario ); //Añado campo de textoo al panel botonModificarSalario = new JButton( ); //Creo un botom botonModificarSalario.setText( "Modificar" ); //Asigno la etiqueta al boton add( botonModificarSalario );//Añado el boton modificar al salario } }
import java.awt.GridBagConstraints; import java.awt.GridBagLayout; import java.awt.event.ActionEvent; import java.text.DecimalFormat; import java.text.NumberFormat; import javax.swing.JButton; import javax.swing.JPanel; import javax.swing.JTextField; import javax.swing.border.TitledBorder; public class PanelConsultas extends JPanel { // Atributos private Empleado empleado; //El empleado sobre el que se realizan los cálculos // Atributos de la interfaz private JTextField txtEdad;//El campo donde se muestra la edad private JTextField txtAntiguedad;// El campo donde se muestra la antigüedad private JTextField txtPrestaciones; //El campo donde se muestran las prestaciones private JButton butEdad; // El botón para calcular la edad private JButton butAntiguedad;//El botón para calcular la antigüedad private JButton butPrestaciones; //El botón para calcular las prestaciones // Constructores //Construye el panel de datos a consultar. public PanelConsultas( ) { GridBagLayout gridbag = new GridBagLayout( ); setLayout( gridbag ); setBorder( new TitledBorder( "Cálculos" )); GridBagConstraints gbc; gbc = new GridBagConstraints(); butEdad = new JButton( ); gbc.anchor = GridBagConstraints.WEST;//Si necesito alinear todo los campos al oeste gbc.gridx=0; gbc.gridy=0; //ubicacion X, Y dentro de la rejilla add( butEdad, gbc ); butAntiguedad = new JButton( ); gbc.gridx=0; gbc.gridy=1; //ubicacion X, Y dentro de la rejilla gbc.weightx=1; // Que se estire en x butAntiguedad.setText( "Calcular Antigüedad" ); //Le asigno el texto al boton antiguedad add( butAntiguedad, gbc ); butPrestaciones = new JButton( ); gbc.gridx=0; gbc.gridy=2; //ubicacion X, Y dentro de la rejilla gbc.weightx=1; // Que se estire en x butPrestaciones.setText( "Calcular Prestaciones" ); //Le asigno el texto al boton prestaciones add( butPrestaciones, gbc ); txtEdad = new JTextField( 10 ); gbc.gridx=1; gbc.gridy=0; //ubicacion X, Y dentro de la rejilla add( txtEdad, gbc ); txtEdad.setEnabled( false ); txtAntiguedad = new JTextField( 10 ); gbc.gridx=1; gbc.gridy=1; //ubicacion X, Y dentro de la rejilla add( txtAntiguedad, gbc ); txtAntiguedad.setEnabled( false ); txtPrestaciones = new JTextField( 10 ); gbc.gridx=1; gbc.gridy=2; //ubicacion X, Y dentro de la rejilla add( txtPrestaciones, gbc ); txtPrestaciones.setEnabled( false ); butEdad.setText( "Calcular Edad" ); gbc.gridx=1; gbc.gridy=3; //ubicacion X, Y dentro de la rejilla } }Fuente: http://javadsdcero.blogspot.com/2012/08/joptionpane-cuadros-de-dialogos.html
Suscribirse a:
Enviar comentarios (Atom)
0 comentarios: