public void actionPerformed(ActionEvent e) {

      try {
        TransferProveedor Proveedor = new TransferProveedor();

        Proveedor.setId(Integer.parseInt(labelId.getText()));

        cajaNIF.setBackground(Color.red);
        Proveedor.setNif(Integer.parseInt(cajaNIF.getText()));
        if (Proveedor.getNif() < 0) throw new NumberFormatException();
        cajaNIF.setBackground(Color.green);

        cajaNombre.setBackground(Color.red);
        if (cajaNombre.getText().equals("")) throw new InputMismatchException();
        Proveedor.setName(cajaNombre.getText());
        cajaNombre.setBackground(Color.green);

        cajaTelefono.setBackground(Color.red);
        Proveedor.setTelephoneNumber(Long.parseLong(cajaTelefono.getText()));
        if (Proveedor.getTelephoneNumber() < 0) throw new NumberFormatException();
        cajaTelefono.setBackground(Color.green);

        cajaEmail.setBackground(Color.red);
        if (cajaEmail.getText().equals("")) throw new InputMismatchException();
        Proveedor.setEmail(cajaEmail.getText());
        cajaEmail.setBackground(Color.green);

        ControladorAplicacion.getInstancia().accion(Acciones.proveedoresEditar, Proveedor);
      } catch (NumberFormatException ex) {
        JOptionPane.showMessageDialog(EditarProveedorGUI.this, "Introduce números");
      } catch (InputMismatchException ex) {
        JOptionPane.showMessageDialog(EditarProveedorGUI.this, "No se permiten campos vacios");
      }
    }
  public EditarProveedorGUI(Integer id, GUI father) {
    super(father);

    this.setLayout(new BorderLayout());
    this.setResizable(false);

    norte = new JPanel(new FlowLayout());
    norte.add(new JLabel("Introduzca los datos del nuevo Proveedor."));

    this.add(norte, BorderLayout.NORTH);

    centro = new JPanel(new GridLayout(5, 2, 10, 10));
    centro.setBorder(BorderFactory.createTitledBorder("Datos"));

    centro.add(new JLabel("Id: "));

    labelId = new JLabel(id.toString());
    centro.add(labelId);

    centro.add(new JLabel("NIF: "));
    cajaNIF = new JTextField();
    cajaNIF.setPreferredSize(new Dimension(300, 30));
    centro.add(cajaNIF);

    centro.add(new JLabel("Nombre: "));
    cajaNombre = new JTextField();
    cajaNombre.setPreferredSize(new Dimension(300, 30));
    centro.add(cajaNombre);

    centro.add(new JLabel("Nº telefono: "));
    cajaTelefono = new JTextField();
    cajaTelefono.setPreferredSize(new Dimension(300, 30));
    centro.add(cajaTelefono);

    centro.add(new JLabel("Email: "));
    cajaEmail = new JTextField();
    cajaEmail.setPreferredSize(new Dimension(300, 30));
    centro.add(cajaEmail);

    this.add(centro, BorderLayout.CENTER);

    sur = new JPanel(new GridLayout(1, 2, 10, 10));

    aceptar = new JButton("Aceptar");
    aceptar.addActionListener(new ListenerAceptar());
    sur.add(aceptar);

    cancelar = new JButton("Cancelar");
    cancelar.addActionListener(new ListenerCancelar());
    sur.add(cancelar);

    this.add(sur, BorderLayout.SOUTH);

    // set the configurations of the window
    this.setSize(400, 230);
    this.setLocationRelativeTo(null);
    this.setVisible(true);
    this.setResizable(false);

    // Consultamos los datos del Proveedor.
    TransferProveedor Proveedor = new TransferProveedor();
    Proveedor.setId(id);
    ControladorAplicacion.getInstancia().accion(Acciones.proveedoresConsultar, Proveedor);
  }