You are on page 1of 21

package vista;

import biblioteca.LE;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;

public class GUIEmpleados extends JFrame implements WindowListener,ActionListener{
//Atributos estructuras de datos
long codigo[];
String nombre[];
long dni[];
String zona[];
double sueldo[];
double bonificacion[];
int numPer;

//Atributos-componentes

JLabel lblCodigo,lblNombre,lblDni,lblZona,lblSueldo,lblBonificacion;
JTextField txtCodigo,txtNombre,txtDni,txtZona,txtSueldo,txtBonificacion;
JButton btnIngresar,btnMostrar,btnMostrarDatosEmpl,btnMayorSueldo,btnMenorSueldo,
btnSueldoxCobrar ,btnModificar,btnEliminar,btnOrdenarXCodigo;
JTextArea txaResultado;

public GUIEmpleados(){
//Estructura de datos

codigo = new long[4];
nombre = new String[4];
dni = new long[4];
zona = new String[4];
bonificacion = new double[4];
sueldo = new double[4];
numPer = 0;

//Contenedor
getContentPane().setLayout(null);

//Componentes

lblCodigo = new JLabel("Ingrese Codigo");
lblCodigo.setBounds(15, 15, 110, 25);
lblCodigo.setForeground(Color.blue);
getContentPane().add(lblCodigo);

lblNombre = new JLabel("Ingrese Nombre");
lblNombre.setBounds(15, 50, 110, 25);
lblNombre.setForeground(Color.blue);
getContentPane().add(lblNombre);

lblDni = new JLabel("Ingrese n D.N.I");
lblDni.setBounds(15, 85, 110, 25);
lblDni.setForeground(Color.blue);
getContentPane().add(lblDni);

lblZona = new JLabel("Ingrese Zona");
lblZona.setBounds(15, 120,110, 25);
lblZona.setForeground(Color.blue);
getContentPane().add(lblZona);

lblSueldo = new JLabel("Ingrese Sueldo");
lblSueldo.setBounds(15, 155,110,25);
lblSueldo.setForeground(Color.blue);
getContentPane().add(lblSueldo);

lblBonificacion = new JLabel("Ingrese Bonificacion");
lblBonificacion.setBounds(15, 190,125, 25);
lblBonificacion.setForeground(Color.blue);
getContentPane().add(lblBonificacion);

txtCodigo = new JTextField(100);
txtCodigo.setBounds(135, 15,100, 25);
txtCodigo.setForeground(Color.black);
getContentPane().add(txtCodigo);

txtNombre = new JTextField(100);
txtNombre.setBounds(135, 50, 100, 25);
txtNombre.setForeground(Color.black);
getContentPane().add(txtNombre);

txtDni = new JTextField(100);
txtDni.setBounds(135, 85, 100, 25);
txtDni.setForeground(Color.black);
getContentPane().add(txtDni);

txtZona = new JTextField(100);
txtZona.setBounds(135, 120, 100, 25);
txtZona.setForeground(Color.black);
getContentPane().add(txtZona);

txtSueldo = new JTextField(100);
txtSueldo.setBounds(135, 155, 100,25);
txtSueldo.setForeground(Color.black);
getContentPane().add(txtSueldo);

txtBonificacion = new JTextField(100);
txtBonificacion.setBounds(135, 190,100,25);
txtSueldo.setForeground(Color.black);
getContentPane().add(txtBonificacion);

btnIngresar = new JButton("Ingresar");
btnIngresar.setBounds(380,30, 190,25);
btnIngresar.addActionListener(this);
getContentPane().add(btnIngresar);

btnMostrar =new JButton("Mostrar");
btnMostrar.setBounds(380,60,190,25);
btnMostrar.addActionListener(this);
getContentPane().add(btnMostrar);

btnMostrarDatosEmpl = new JButton("Mostrar Datos Empleados");
btnMostrarDatosEmpl.setBounds(380,90,190,25);
btnMostrarDatosEmpl.addActionListener(this);
getContentPane().add(btnMostrarDatosEmpl);

btnMayorSueldo = new JButton("Mostrar Mayor Sueldo");
btnMayorSueldo.setBounds(380,120,190,25);
btnMayorSueldo.addActionListener(this);
getContentPane().add(btnMayorSueldo);

btnMenorSueldo = new JButton("Mostrar Menor Sueldo");
btnMenorSueldo.setBounds(380,150,190,25);
btnMenorSueldo.addActionListener(this);
getContentPane().add(btnMenorSueldo);

btnSueldoxCobrar = new JButton("Mostrar Sueldo total");
btnSueldoxCobrar.setBounds(380,180,190,25);
btnSueldoxCobrar.addActionListener(this);
getContentPane().add(btnSueldoxCobrar);

btnModificar = new JButton("Modificar Datos");
btnModificar.setBounds(380,210,190,25);
btnModificar.addActionListener(this);
getContentPane().add(btnModificar);

btnEliminar = new JButton("Eliminar Datos");
btnEliminar.setBounds(380,240,190,25);
btnEliminar.addActionListener(this);
getContentPane().add(btnEliminar);

btnOrdenarXCodigo = new JButton("Ordenar x Codigo");
btnOrdenarXCodigo.setBounds(380,270,190,25);
btnOrdenarXCodigo.addActionListener(this);
getContentPane().add(btnOrdenarXCodigo);


txaResultado = new JTextArea();
txaResultado.setBounds(15,240,350,200);
txaResultado.setBackground(Color.cyan);
txaResultado.setFont(new Font("verdana", Font.ITALIC,12));
getContentPane().add(txaResultado);

// contenedor
this.setTitle("Sueldo del empleado");
this.addWindowListener(this);
this.setSize(590,485);
this.setResizable(false);
this.setLocationRelativeTo(this);
this.setVisible(true);

}
public static void main(String[] args) {
GUIEmpleados x = new GUIEmpleados();
}


@Override
public void windowOpened(WindowEvent e) {

}

@Override
public void windowClosing(WindowEvent e) {
System.exit(0);
}

@Override
public void windowClosed(WindowEvent e) {

}

@Override
public void windowIconified(WindowEvent e) {

}

@Override
public void windowDeiconified(WindowEvent e) {

}

@Override
public void windowActivated(WindowEvent e) {

}

@Override
public void windowDeactivated(WindowEvent e) {

}

@Override
public void actionPerformed(ActionEvent e) {
if(e.getSource()==btnIngresar){
ingresarDatos();
}
if(e.getSource()==btnMostrar){
mostrarDatos();
}
if(e.getSource()==btnMostrarDatosEmpl){
mostrarDatosEmpleado();
}
if(e.getSource()==btnMayorSueldo){
mostrarMayorSueldo();
}
if(e.getSource()==btnMenorSueldo){
mostrarMenorSueldo();
}
if(e.getSource()==btnSueldoxCobrar){
mostrarSueldoXCobrar();
}
if(e.getSource()==btnModificar){
modificarDatos();
}
if(e.getSource()==btnEliminar){
eliminarDatos();
}
if(e.getSource()==btnOrdenarXCodigo){
ordenarxCOdigo();
}

}

public void ingresarDatos() {
if(codigo.length==numPer){
aumentar();
}
String sCod = txtCodigo.getText();
long cod = Long.parseLong(sCod);
codigo[numPer]=cod;
nombre[numPer]=txtNombre.getText();
String sDni = txtDni.getText();
long Dni = Long.parseLong(sDni);
dni[numPer]=Dni;
zona[numPer]=txtZona.getText();
sueldo[numPer]=Double.parseDouble(txtSueldo.getText());
bonificacion[numPer]=Double.parseDouble(txtBonificacion.getText());
numPer++;
limpiarCajas();
}

public void mostrarDatos() {
String lista="Codigos-Nombres-N DNI-Zona-Sueldo-Bonificacion\n";

for(int i=0;i<numPer;i++){
lista = lista+
codigo[i]+" - "+
nombre[i]+" - "+
dni[i]+" - "+
zona[i]+" - "+
sueldo[i]+" - "+
bonificacion[i]+"\n";

}
lista = lista+"\n\nCantidad de empleados:"+numPer;
txaResultado.setText(lista);
}

public void mostrarDatosEmpleado() {
long cod = LE.leerLong("Ingrese el codigo del empleado");
int pos = buscarCodigo(cod);
if(pos==-1){
LE.mostrarError("El codigo ingresado no existe...verifique");
}else{
txaResultado.setText("Los datos del empleado son: "+codigo[pos]+" "+nombre[pos]+
" "+dni[pos]+" "+zona[pos]+" "+sueldo[pos]+" "+bonificacion[pos]);
}
}

public void mostrarMayorSueldo() {
double sueldoMayor=0;
for(int j=0;j<numPer;j++){
sueldoMayor = Math.max(sueldoMayor, sueldo[j]);
}
txaResultado.setText("El sueldo mayor es: "+sueldoMayor);
}

public void mostrarMenorSueldo() {
double sueldoMenor=999999;
for(int j=0;j<numPer;j++){
sueldoMenor = Math.min(sueldoMenor, sueldo[j]);
}
txaResultado.setText("El sueldo menor es: "+sueldoMenor);

}

public void modificarDatos() {
long cod = LE.leerLong("Ingrese el codigo de empleado cuyos datos desea modificar");
int pos = buscarCodigo(cod);
if(pos ==-1){
LE.mostrarError("El codigo ingresado no existe...verifique");
}else{
int rpta = LE.mostrarPreguntaOpcion2("Esta usted seguro que desea modificar los datos del
empleado(a):"+
" "+ nombre[pos]+" "+"con n de D.N.I"+" "+dni[pos]+" "+"procedente de la zona de "+"
"+zona[pos]+" "+
"con un sueldo de "+" "+sueldo[pos]+" "+"mas una bonificacion de "+"
"+bonificacion[pos]);
if(rpta==0){
String nuevoNom = LE.leerString("Ingrese el nuevo nombre del empleado");
long nuevoDni = LE.leerLong("Ingrese el nuevo n de D.N.I del empleado");
String nuevaZona = LE.leerString("Ingrese la nueva zona de procedencia del empleado");
double nuevoSueldo = LE.leerDouble("Ingrese el nuevo sueldo del empleado");
double nuevoBonific = LE.leerDouble("Ingrese la bonificacion del empleado");

nombre[pos] = nuevoNom;
dni[pos] = nuevoDni;
zona[pos] = nuevaZona;
sueldo[pos] = nuevoSueldo;
bonificacion[pos] = nuevoBonific;
}
}
}

public void eliminarDatos() {
long cod = LE.leerLong("Ingrese el codigo del empleado cuyos datos desea eliminar");
int pos = buscarCodigo(cod);
if(pos==-1){
LE.mostrarError("El codigo ingresado no existe...verifique");
}else{
int rpta = LE.mostrarPreguntaOpcion2("Esta usted seguro que desea eliminar los datos del
empleado(a): "
+nombre[pos]);
if(rpta == 0){
for(int i = pos;i < numPer - 1;i++){
codigo[i] = codigo[i+1];
nombre[i] = nombre[i+1];
dni[i] = dni[i+1];
zona[i] = zona[i+1];
sueldo[i] = sueldo[i+1];
bonificacion[i] = bonificacion[i+1];
}
numPer--;
LE.mostrarInformacion("Los datos fueron eliminados exitosamente!!");
}
}
}

public void ordenarxCOdigo() {
for(int i=0;i<numPer;i++){
for(int j=i+1;j<numPer;j++){
if(codigo[i] > codigo[j]){
long codi=codigo[j];
codigo[j]=codigo[i];
codigo[i]=codi;

String nom = nombre[j];
nombre[j] = nombre[i];
nombre[i] = nom;

long DnI = dni[j];
dni[j] = dni[i];
dni[i] = DnI;

String zon = zona[j];
zona[j] = zona[i];
zona[i] = zon;

double sueld = sueldo[j];
sueldo[j] = sueldo[i];
sueldo[i] = sueld;

double bonific = bonificacion[j];
bonificacion[j] = bonificacion[i];
bonificacion[i] = bonific;
}
}
}
}



public void aumentar() {
long co[] = new long[codigo.length + 4];
String nom[] = new String[nombre.length + 4];
long Dni[] = new long[dni.length + 4];
String zon[] = new String[zona.length+4];
double suel[] = new double[sueldo.length+4];
double bonif[] = new double[bonificacion.length+4];


for (int i = 0; i < numPer; i++) {
co[i] = codigo[i];
nom[i] = nombre[i];
Dni[i] = dni[i];
zon[i] = zona[i];
suel[i] = sueldo[i];
bonif[i] = bonificacion[i];
}
codigo = co;
nombre = nom;
dni = Dni;
zona = zon;
sueldo = suel;
bonificacion = bonif;
}

public void limpiarCajas() {
txtCodigo.setText("");
txtNombre.setText("");
txtDni.setText("");
txtZona.setText("");
txtSueldo.setText("");
txtBonificacion.setText("");
txtCodigo.requestFocus();
}

public int buscarCodigo(long cod) {
for(int i=0;i<numPer;i++){
if(codigo[i]==cod){
return i;
}
}
return -1;
}

public void mostrarSueldoXCobrar() {
double su=0,bon=0,total;
long cod = LE.leerLong("Ingrese el codigo del empleado(a)");
int pos = buscarCodigo(cod);
if(pos==-1){
LE.mostrarError("El codigo ingresado no existe...verifique");
}else{
LE.mostrarInformacion("Los datos del empleado es: " +" " + nombre[pos] +" || " +
"n de D.N.I: "+" " + dni[pos] +" || " + "zona: " +" "+ zona[pos] +" || " +
"sueldo: " + " " + sueldo[pos] + " || " + "bonificacion: " + bonificacion[pos]);

su = sueldo[pos];
bon = bonificacion[pos];
}
total=su+bon;
txaResultado.setText("sueldo total a cobrar del empleado(a): "+nombre[pos]+" "+"es:
"+total);

}



}

You might also like