Diseño de Ventana empleados usando la clase Box

En esta ocasion dejo una ejemplo de como disear una ventana usando la Clase Box. Los iconos que utilice estan en mi pagina web, en este link. El diseño de la ventana es sobre una tabla llamada empleados, que obviamente guarda informacion sobre empleados de una empresa ficticia.

La ventana esta diseñada para mostrar los campos de esta tabla, creada en Mysql:

Como se puede observar a continuacion es bastante codigo, pero bueno pienso que vale la pena con tal de aprender como se diseña una ventana de estas desde 0 (sin ayuda de ningun IDE).

/**
 * @(#)JfrEmpleados.java
 * Descripcion: Interfaz grafica de Empleados, este JFrame permite al usuario
 * llevar el control de empleados.
 *
 * @author gonzasilve@gmail.com
 * @version 1.00 2009/11/17
 */

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

import javax.swing.event.ListSelectionListener;
import javax.swing.event.ListSelectionEvent;
import java.util.*;

//Importar clases para manejo de BD (en este ejemplo no
//                                   se usa ninguna clase de este paquete)
import java.sql.*;

public class JfrEmpleados extends JFrame
{
		/*
	 *Prefijos:
	 *	jtx		JTextField
	 *	jpf		JPasswordField
	 *	jcb		jComboBox
	 *	btn		JButton
	 *	lbl		JLabel
	 *	pan		JPanel
	 *	fra		JFrame
	 *	box		Box
	 *  jrb		JRadioButton
	 *
	 **/

	//Constructor que crea la interfaz grafic de la ventan principal
    public JfrEmpleados()
    {
    	setTitle("Hardware Solutions S.A. de C.V. -Empleados");
    	setSize(900,620);
    	this.setLocationRelativeTo(this);	//Centramos este JFrame en la pantalla
        this.setResizable(false);
        this.setIconImage(new ImageIcon(getClass().getResource("iconoEmpleados.png")).getImage());
        //setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        //Box que contendra todo el contenido del JFrame
        Box boxContenidoVertical = Box.createVerticalBox();

        //Disenio del rotulo principal superior del JFrame
        Box boxHRotuloPrincipal = Box.createHorizontalBox();
        JLabel lblRotuloSistema = new JLabel("Hardware Solutions S.A. de C.V.");
        lblRotuloSistema.setFont(new Font("Arial",Font.BOLD,20));
        lblRotuloSistema.setForeground(Color.BLUE);
        JLabel lblIconoEmpleados = new JLabel(new ImageIcon(this.getClass().getResource("icono_empleados.png")));
        JLabel lblRotuloEmpleados = new JLabel("Empleados");
        lblRotuloEmpleados.setFont(new Font("Arial",Font.BOLD,20));
        lblRotuloEmpleados.setForeground(Color.GREEN);
        JButton btnCerrarEmpleados = new JButton();
        btnCerrarEmpleados.setMargin(new Insets(0, 0, 0, 0));
        btnCerrarEmpleados.setIcon(new ImageIcon(this.getClass().getResource("icono_cerrar.png")));
        boxHRotuloPrincipal.add(Box.createHorizontalStrut(15));
        boxHRotuloPrincipal.add(lblRotuloSistema);
        boxHRotuloPrincipal.add(Box.createHorizontalStrut(80));
        boxHRotuloPrincipal.add(lblIconoEmpleados);
        boxHRotuloPrincipal.add(Box.createHorizontalStrut(8));
        boxHRotuloPrincipal.add(lblRotuloEmpleados);
        boxHRotuloPrincipal.add(Box.createHorizontalStrut(262));
        boxHRotuloPrincipal.add(btnCerrarEmpleados);
        JPanel panRotuloPrincipal = new JPanel(new FlowLayout(FlowLayout.LEFT));
        panRotuloPrincipal.setBackground(Color.white);
        panRotuloPrincipal.add(boxHRotuloPrincipal);

        //Creacion de los botones Principales de la parte superior del JFrame
        JButton btnNuevo = new JButton();
        btnNuevo.setIcon(new ImageIcon(getClass().getResource("icono_nuevo.png")));
        btnNuevo.setMargin(new Insets(0, 3, 0, 0));
        btnNuevo.setToolTipText("Nuevo empleado");
        JButton btnModificar = new JButton();
        btnModificar.setIcon(new ImageIcon(getClass().getResource("icono_modificar.png")));
        btnModificar.setMargin(new Insets(0, 3, 0, 0));
        btnModificar.setToolTipText("Modificar datos del empleado actual");
        JButton btnEliminar = new JButton();
        btnEliminar.setIcon(new ImageIcon(getClass().getResource("icono_eliminar.png")));
        btnEliminar.setMargin(new Insets(0, 2, 0, 0));
        btnEliminar.setToolTipText("Dar de baja al empleado actual");
        JButton btnListar = new JButton();
        btnListar.setIcon(new ImageIcon(getClass().getResource("icono_listar.png")));
        btnListar.setMargin(new Insets(0, 3, 0, 2));
        btnListar.setToolTipText("Listar en una tabla a todos los empleados");
        JButton btnFinBusqueda = new JButton("Terminar busqueda");
        btnFinBusqueda.setIcon(new ImageIcon(getClass().getResource("icono_Finbuscar.gif")));
        btnFinBusqueda.setMargin(new Insets(0, 3, 0, 3));
        btnFinBusqueda.setToolTipText("Mostrar todos los empleados");

        Box boxHBotonesPrincipales = Box.createHorizontalBox();
        JPanel panBotonesPrincipales = new JPanel(new FlowLayout(FlowLayout.LEFT));
        boxHBotonesPrincipales.add(Box.createHorizontalStrut(40));
        boxHBotonesPrincipales.add(btnNuevo);
        boxHBotonesPrincipales.add(Box.createHorizontalStrut(25));
        boxHBotonesPrincipales.add(btnModificar);
        boxHBotonesPrincipales.add(Box.createHorizontalStrut(25));
        boxHBotonesPrincipales.add(btnEliminar);
        boxHBotonesPrincipales.add(Box.createHorizontalStrut(30));
        boxHBotonesPrincipales.add(btnListar);
        boxHBotonesPrincipales.add(Box.createHorizontalStrut(150));
        boxHBotonesPrincipales.add(btnFinBusqueda);
        panBotonesPrincipales.add(boxHBotonesPrincipales);

        //Creacion de la caja de busqueda y el rotulo del nombre del empleado
        //Creacion de caja de busqueda
        JTextField jtfCajaBusqueda = new JTextField(15);
        JButton btnBuscar = new JButton("Buscar", new ImageIcon(getClass().getResource("icono_buscar16.gif")));
        JButton btnOpcionesBusqueda = new JButton();
        btnOpcionesBusqueda.setMargin(new Insets(0, 0, 0, 0));
        btnOpcionesBusqueda.setIcon(new ImageIcon(getClass().getResource("icono_configurar16.png")));
        btnOpcionesBusqueda.setToolTipText("Opciones de busqueda");
        Box boxHBusqueda = Box.createHorizontalBox();
        boxHBusqueda.add(Box.createHorizontalStrut(10));
        boxHBusqueda.add(jtfCajaBusqueda);
        boxHBusqueda.add(Box.createHorizontalStrut(5));
        boxHBusqueda.add(btnBuscar);
        boxHBusqueda.add(Box.createHorizontalStrut(5));
        boxHBusqueda.add(btnOpcionesBusqueda);
        JPanel panBusqueda = new JPanel(new FlowLayout(FlowLayout.LEFT));
        panBusqueda.add(boxHBusqueda);

        //Creacion de la etiqueta de nombre de empleado
        JLabel lblNombreEmpleado = new JLabel("> Xavier Franco Silva");
        lblNombreEmpleado.setFont(new Font("Arial",Font.BOLD,20));
        lblNombreEmpleado.setForeground(Color.BLUE);
        Box boxHNombreEmpleado = Box.createHorizontalBox();
        boxHNombreEmpleado.add(Box.createHorizontalStrut(10));
        boxHNombreEmpleado.add(lblNombreEmpleado);
        boxHNombreEmpleado.add(Box.createHorizontalStrut(285));         //tamanio del fondo del nombre del empleado
        JPanel panNombreEmpleado = new JPanel(new FlowLayout(FlowLayout.LEFT));
        panNombreEmpleado.setBackground(new Color(174,156,244));
        panNombreEmpleado.add(boxHNombreEmpleado);

        Box boxHBusquedaYNombre = Box.createHorizontalBox();
        boxHBusquedaYNombre.add(panBusqueda);
        boxHBusquedaYNombre.add(Box.createHorizontalStrut(20));
        boxHBusquedaYNombre.add(panNombreEmpleado);
        JPanel panBusquedaYNombre = new JPanel(new FlowLayout(FlowLayout.LEFT));
        panBusquedaYNombre.add(boxHBusquedaYNombre);

        //Creacion de la lista de nombre sy la ficha de datos del empleado
        //Creacion de la lista de nombres
        Box boxVListaNombres = Box.createVerticalBox();
        Box boxHEspaciosSuperiorNombres = Box.createHorizontalBox();
        boxHEspaciosSuperiorNombres.add(Box.createHorizontalStrut(170));    //Espacio arriba de la lista de nombres
        boxVListaNombres.add(boxHEspaciosSuperiorNombres);
        JList lstListaNombres = new JList();
        DefaultListModel modeloNombres = new DefaultListModel();
        modeloNombres.addElement("Juan carlos");
        modeloNombres.addElement("Samuel Arturo");
        modeloNombres.addElement("Armando");
        modeloNombres.addElement("Juan carlos");
        modeloNombres.addElement("Samuel Arturo");
        modeloNombres.addElement("Armando");
        lstListaNombres.setVisibleRowCount(16);          //Numero de elementos que se muestran al usuario
        lstListaNombres.setModel(modeloNombres);
        JScrollPane scrollListaNombres = new JScrollPane(lstListaNombres);
        boxVListaNombres.add(scrollListaNombres);
        JPanel panboxVListaNombres = new JPanel(new FlowLayout(FlowLayout.LEFT));
        panboxVListaNombres.add(boxVListaNombres);

        //Creacion del contenido de las fichas
        Box boxVFichas = Box.createVerticalBox();
        Box boxHEspaciosSuperiorFichas = Box.createHorizontalBox();
        boxHEspaciosSuperiorFichas.add(Box.createHorizontalStrut(100));    //Espacio arriba de las fichas
        boxVFichas.add(boxHEspaciosSuperiorFichas);
        Color colorEtiquetas = Color.BLUE;
        Color colorInhabilitados = Color.BLACK;
        //Disenio del contenido de la               FICHA DE DATOS LABORALES
        //Columan 1
        JTabbedPane jtpDatosEmpleado = new JTabbedPane();
        JPanel panFicha1 = new JPanel(new FlowLayout(FlowLayout.LEFT));
        JPanel panID= new JPanel(new FlowLayout(FlowLayout.LEFT));
            JLabel lblIDEmpleado = new JLabel("ID                    ");
            lblIDEmpleado.setForeground(colorEtiquetas);
            JTextField jtfIDEmpleado = new JTextField(20);
            jtfIDEmpleado.setDisabledTextColor(colorInhabilitados);
        panID.add(lblIDEmpleado);
        panID.add(jtfIDEmpleado);
        JPanel panCargo= new JPanel(new FlowLayout(FlowLayout.LEFT));
            JLabel lblCargo = new JLabel("Cargo              ");
            lblCargo.setForeground(colorEtiquetas);
            JTextField jtfCargo = new JTextField(20);
            jtfCargo.setDisabledTextColor(colorInhabilitados);
        panCargo.add(lblCargo);
        panCargo.add(jtfCargo);
        JPanel panDepartamento= new JPanel(new FlowLayout(FlowLayout.LEFT));
            JLabel lblDepartamento = new JLabel("Departamento ");
            lblDepartamento.setForeground(colorEtiquetas);
            JTextField jtfDepartamento = new JTextField(20);
            jtfDepartamento.setDisabledTextColor(colorInhabilitados);
        panDepartamento.add(lblDepartamento);
        panDepartamento.add(jtfDepartamento);
        JPanel panJefeDirecto = new JPanel(new FlowLayout(FlowLayout.LEFT));
            JLabel lblJefeDirecto = new JLabel("Jefe directo      ");
            lblJefeDirecto.setForeground(colorEtiquetas);
            JTextField jtfJefeDirecto = new JTextField(20);
            jtfJefeDirecto.setDisabledTextColor(colorInhabilitados);
        panJefeDirecto.add(lblJefeDirecto);
        panJefeDirecto.add(jtfJefeDirecto);
        JPanel panFechaContratacion = new JPanel(new FlowLayout(FlowLayout.LEFT));
            JLabel lblFechaContratacion = new JLabel("<html>Fecha de <br>contratacion&nbsp&nbsp&nbsp&nbsp&nbsp</html>");
            lblFechaContratacion.setForeground(colorEtiquetas);
            JTextField jtfFechaContratacion = new JTextField(20);
            jtfFechaContratacion.setDisabledTextColor(colorInhabilitados);
        panFechaContratacion.add(lblFechaContratacion);
        panFechaContratacion.add(jtfFechaContratacion);
        JPanel panTratamiento = new JPanel(new FlowLayout(FlowLayout.LEFT));
            JLabel lblTratamiento = new JLabel("Tratamiento     ");
            lblTratamiento.setForeground(colorEtiquetas);
            JTextField jtfTratamiento = new JTextField(20);
            jtfTratamiento.setDisabledTextColor(colorInhabilitados);
        panTratamiento.add(lblTratamiento);
        panTratamiento.add(jtfTratamiento);
        //Columna 2
        JPanel panInfoSalario1 = new JPanel(new FlowLayout(FlowLayout.LEFT));
            JLabel lblInfoSalario1 = new JLabel("Salario en base a:                                   ");
            lblInfoSalario1.setForeground(colorEtiquetas);
            JComboBox jcbTiposSalario = new JComboBox();
            jcbTiposSalario.addItem("Salario base");
            jcbTiposSalario.addItem("Salario por comision");
            jcbTiposSalario.addItem("Salario base + comision");
            jcbTiposSalario.addItem("Salario por horas trabajadas");
            jcbTiposSalario.setMaximumRowCount(4);
        JPanel panCamposInfoSalario1 = new JPanel(new FlowLayout(FlowLayout.LEFT));
        panCamposInfoSalario1.add(lblInfoSalario1);
        Box boxVInfoSalario = Box.createVerticalBox();
        boxVInfoSalario.add(panCamposInfoSalario1);
        boxVInfoSalario.add(jcbTiposSalario);
        panInfoSalario1.add(boxVInfoSalario);
        JPanel panInfoSalario2 = new JPanel(new FlowLayout(FlowLayout.LEFT));
            JLabel lblInfoSalario2 = new JLabel("Sueldo base (S)           ");
            lblInfoSalario2.setForeground(colorEtiquetas);
            JTextField jtfInfoSalario1 = new JTextField(10);
            jtfInfoSalario1.setDisabledTextColor(colorInhabilitados);
        panInfoSalario2.add(lblInfoSalario2);
        panInfoSalario2.add(jtfInfoSalario1);
        JPanel panInfoSalario3 = new JPanel(new FlowLayout(FlowLayout.LEFT));
            JLabel lblInfoSalario3 = new JLabel("Tasa de comision (%)  ");
            lblInfoSalario3.setForeground(colorEtiquetas);
            JTextField jtfInfoSalario2 = new JTextField(10);
            jtfInfoSalario2.setDisabledTextColor(colorInhabilitados);
        panInfoSalario3.add(lblInfoSalario3);
        panInfoSalario3.add(jtfInfoSalario2);

        Box boxHFichaLaborales = Box.createHorizontalBox();
        Box boxVColumna1Ficha1 = Box.createVerticalBox();
        Box boxVColumna2Ficha1 = Box.createVerticalBox();

        boxVColumna1Ficha1.add(Box.createVerticalStrut(10));
        boxVColumna1Ficha1.add(panID);
        boxVColumna1Ficha1.add(Box.createVerticalStrut(5));
        boxVColumna1Ficha1.add(panCargo);
        boxVColumna1Ficha1.add(Box.createVerticalStrut(5));
        boxVColumna1Ficha1.add(panDepartamento);
        boxVColumna1Ficha1.add(Box.createVerticalStrut(5));
        boxVColumna1Ficha1.add(panJefeDirecto);
        boxVColumna1Ficha1.add(Box.createVerticalStrut(5));
        boxVColumna1Ficha1.add(panFechaContratacion);
        boxVColumna1Ficha1.add(Box.createVerticalStrut(5));
        boxVColumna1Ficha1.add(panTratamiento);

        boxVColumna2Ficha1.add(panInfoSalario1);
        boxVColumna2Ficha1.add(Box.createVerticalStrut(12));
        boxVColumna2Ficha1.add(panInfoSalario2);
        boxVColumna2Ficha1.add(Box.createVerticalStrut(8));
        boxVColumna2Ficha1.add(panInfoSalario3);
        JPanel panboxVColumna2Ficha1 = new JPanel(new FlowLayout(FlowLayout.LEFT));
        panboxVColumna2Ficha1.add(boxVColumna2Ficha1);

        boxHFichaLaborales.add(Box.createHorizontalStrut(10));
        boxHFichaLaborales.add(boxVColumna1Ficha1);
        boxHFichaLaborales.add(Box.createHorizontalStrut(15));
        boxHFichaLaborales.add(panboxVColumna2Ficha1);
        panFicha1.add(boxHFichaLaborales);
        ImageIcon iconoFichaDatosLaborales = new ImageIcon(getClass().getResource("iconoFichaLaborales.gif"));
        jtpDatosEmpleado.addTab("Datos laborales",iconoFichaDatosLaborales, panFicha1,"Datos del trabajo");

        //Disenio del contenido de la               FICHA DE DATOS PERSONALES
        JPanel panFicha2 = new JPanel(new FlowLayout(FlowLayout.LEFT));
        JPanel panNombre= new JPanel(new FlowLayout(FlowLayout.LEFT));
            JLabel lblNombre = new JLabel("Nombre    ");
            lblNombre.setForeground(colorEtiquetas);
            JTextField jtfNombre = new JTextField(20);
            jtfNombre.setDisabledTextColor(colorInhabilitados);
        panNombre.add(lblNombre);
        panNombre.add(jtfNombre);
        JPanel panApellidos = new JPanel(new FlowLayout(FlowLayout.LEFT));
            JLabel lblApellidos = new JLabel("Apellidos ");
            lblApellidos.setForeground(colorEtiquetas);
            JTextField jtfApellidos = new JTextField(20);
            jtfApellidos.setDisabledTextColor(colorInhabilitados);
        panApellidos.add(lblApellidos);
        panApellidos.add(jtfApellidos);
        JPanel panSexo = new JPanel(new FlowLayout(FlowLayout.LEFT));
            JLabel lblSexo = new JLabel("Sexo         ");
            lblSexo.setForeground(colorEtiquetas);
            JComboBox jcbSexo = new JComboBox();
            jcbSexo.addItem("Masculino     ");
            jcbSexo.addItem("Femenino");
            jcbSexo.setMaximumRowCount(2);
        panSexo.add(lblSexo);
        panSexo.add(jcbSexo);
        JPanel panTelefono = new JPanel(new FlowLayout(FlowLayout.LEFT));
            JLabel lblTelefono = new JLabel("Telefono  ");
            lblTelefono.setForeground(colorEtiquetas);
            JTextField jtfTelefono = new JTextField(20);
            jtfTelefono.setDisabledTextColor(colorInhabilitados);
        panTelefono.add(lblTelefono);
        panTelefono.add(jtfTelefono);
        JPanel panEdad = new JPanel(new FlowLayout(FlowLayout.LEFT));
            JLabel lblEdad = new JLabel("Edad        ");
            lblEdad.setForeground(colorEtiquetas);
            JTextField jtfEdad = new JTextField(20);
            jtfTelefono.setDisabledTextColor(colorInhabilitados);
        panEdad.add(lblEdad);
        panEdad.add(jtfEdad);
        JPanel panCorreo = new JPanel(new FlowLayout(FlowLayout.LEFT));
            JLabel lblCorreo = new JLabel("Correo     ");
            lblCorreo.setForeground(colorEtiquetas);
            JTextField jtfCorreo = new JTextField(20);
            jtfCorreo.setDisabledTextColor(colorInhabilitados);
        panCorreo.add(lblCorreo);
        panCorreo.add(jtfCorreo);

        //Contenido de columna2 ficha 2
        JPanel panInfoFotografia = new JPanel(new FlowLayout(FlowLayout.CENTER));
            JLabel lblInfoFotografia = new JLabel("Fotografia");
        panInfoFotografia.add(lblInfoFotografia);
        JPanel panFotografia = new JPanel(new FlowLayout(FlowLayout.CENTER));
            JLabel lblFotografia = new JLabel();
            ImageIcon iconofotografia = new ImageIcon(getClass().getResource("sin_fotografia.gif"));
            lblFotografia.setIcon(iconofotografia);
        panFotografia.add(lblFotografia);
        JPanel panbtnCambiarFotografia = new JPanel(new FlowLayout(FlowLayout.LEFT));
            ImageIcon iconoModificarFotografia = new ImageIcon(getClass().getResource("iconoCambiar_fotografia.png"));
            JButton btnModificarFotografia = new JButton(iconoModificarFotografia);
            btnModificarFotografia.setMargin(new Insets(0, 0, 0, 0));
            btnModificarFotografia.setToolTipText("Cambiar fotografia");
        panbtnCambiarFotografia.add(btnModificarFotografia);
        JPanel panbtnQuitarFotografia = new JPanel(new FlowLayout(FlowLayout.LEFT));
            ImageIcon iconoQuitarFotografia = new ImageIcon(getClass().getResource("iconoQuitar_fotografia.png"));
            JButton btnQuitarFotografia = new JButton(iconoQuitarFotografia);
            btnQuitarFotografia.setMargin(new Insets(0, 0, 0, 0));
            btnQuitarFotografia.setToolTipText("Quitar fotografia");
        panbtnQuitarFotografia.add(btnQuitarFotografia);
        JPanel panbtnRevertirFotografia = new JPanel(new FlowLayout(FlowLayout.LEFT));
            ImageIcon iconoRevertirFotografia = new ImageIcon(getClass().getResource("iconoRevertir_fotografia.png"));
            JButton btnRevertirFotografia = new JButton(iconoRevertirFotografia);
            btnRevertirFotografia.setMargin(new Insets(0, 0, 0, 0));
            btnRevertirFotografia.setToolTipText("Revertir dejando la que estaba");
        panbtnRevertirFotografia.add(btnRevertirFotografia);

        Box boxHFichaPersonales = Box.createHorizontalBox();
        Box boxVColumna1Ficha2 = Box.createVerticalBox();
        Box boxHColumna2Ficha2 = Box.createHorizontalBox();
        Box boxVCol1Columna2Ficha2 = Box.createVerticalBox();
        Box boxVCol2Columna2Ficha2 = Box.createVerticalBox();

        boxVColumna1Ficha2.add(Box.createVerticalStrut(10));
        boxVColumna1Ficha2.add(panNombre);
        boxVColumna1Ficha2.add(Box.createVerticalStrut(5));
        boxVColumna1Ficha2.add(panApellidos);
        boxVColumna1Ficha2.add(Box.createVerticalStrut(5));
        boxVColumna1Ficha2.add(panSexo);
        boxVColumna1Ficha2.add(Box.createVerticalStrut(5));
        boxVColumna1Ficha2.add(panTelefono);
        boxVColumna1Ficha2.add(Box.createVerticalStrut(5));
        boxVColumna1Ficha2.add(panEdad);
        boxVColumna1Ficha2.add(Box.createVerticalStrut(5));
        boxVColumna1Ficha2.add(panCorreo);

        boxVCol1Columna2Ficha2.add(panInfoFotografia);
        boxVCol1Columna2Ficha2.add(panFotografia);

        boxVCol2Columna2Ficha2.add(Box.createVerticalStrut(40));
        boxVCol2Columna2Ficha2.add(panbtnCambiarFotografia);
        boxVCol2Columna2Ficha2.add(panbtnQuitarFotografia);
        boxVCol2Columna2Ficha2.add(panbtnRevertirFotografia);
        JPanel panboxVCol2Columna2Ficha2 = new JPanel(new FlowLayout(FlowLayout.LEFT));
        panboxVCol2Columna2Ficha2.add(boxVCol2Columna2Ficha2);

        boxHColumna2Ficha2.add(boxVCol1Columna2Ficha2);
        boxHColumna2Ficha2.add(panboxVCol2Columna2Ficha2);

        JPanel panboxVColumna2Ficha2 = new JPanel(new FlowLayout(FlowLayout.LEFT));
        panboxVColumna2Ficha2.add(boxHColumna2Ficha2);

        boxHFichaPersonales.add(Box.createHorizontalStrut(10));
        boxHFichaPersonales.add(boxVColumna1Ficha2);
        boxHFichaPersonales.add(Box.createHorizontalStrut(50));
        boxHFichaPersonales.add(panboxVColumna2Ficha2);

        panFicha2.add(boxHFichaPersonales);
        ImageIcon iconoFicha2 = new ImageIcon(getClass().getResource("iconoFichaPersonales.gif"));
        jtpDatosEmpleado.addTab("Datos personales", iconoFicha2, panFicha2,"Datos personales");

		//Disenio del contenido de la               FICHA  DIRECCION
        JPanel panFicha3 = new JPanel(new FlowLayout(FlowLayout.LEFT));
        JPanel panNacionalidad = new JPanel(new FlowLayout(FlowLayout.LEFT));
            JLabel lblNacionalidad = new JLabel("Nacionalidad  ");
            lblNacionalidad.setForeground(colorEtiquetas);
            JTextField jtfNacionalidad = new JTextField(20);
            jtfNacionalidad.setDisabledTextColor(colorInhabilitados);
        panNacionalidad.add(lblNacionalidad);
        panNacionalidad.add(jtfNacionalidad);
        JPanel panEstado = new JPanel(new FlowLayout(FlowLayout.LEFT));
            JLabel lblEstado = new JLabel("Estado           ");
            lblEstado.setForeground(colorEtiquetas);
            JTextField jtfEstado = new JTextField(20);
            jtfEstado.setDisabledTextColor(colorInhabilitados);
        panEstado.add(lblEstado);
        panEstado.add(jtfEstado);
        JPanel panDireccion = new JPanel(new FlowLayout(FlowLayout.LEFT));
            JLabel lblDireccion = new JLabel("Direccion       ");
            lblDireccion.setForeground(colorEtiquetas);
            JTextField jtfDireccion = new JTextField(20);
            jtfDireccion.setDisabledTextColor(colorInhabilitados);
        panDireccion.add(lblDireccion);
        panDireccion.add(jtfDireccion);
        JPanel panCP = new JPanel(new FlowLayout(FlowLayout.LEFT));
            JLabel lblCP = new JLabel("C.P.                ");
            lblCP.setForeground(colorEtiquetas);
            JTextField jtfCP = new JTextField(20);
            jtfCP.setDisabledTextColor(colorInhabilitados);
        panCP.add(lblCP);
        panCP.add(jtfCP);
        JPanel panlblObservaciones = new JPanel(new FlowLayout(FlowLayout.CENTER));
            JLabel lblObservaciones = new JLabel("Observaciones");
            lblObservaciones.setForeground(colorEtiquetas);
        panlblObservaciones.add(lblObservaciones);
        JPanel panjtaObservaciones = new JPanel(new FlowLayout(FlowLayout.CENTER));
            JTextArea jtaObservaciones = new JTextArea(5,20);
            jtaObservaciones.setDisabledTextColor(colorInhabilitados);
            JScrollPane scrollObservaciones = new JScrollPane(jtaObservaciones);
            scrollObservaciones.setVerticalScrollBarPolicy(ScrollPaneConstants.VERTICAL_SCROLLBAR_ALWAYS);         //Barra de desplamiento vertical siempre visible
            scrollObservaciones.setHorizontalScrollBarPolicy(ScrollPaneConstants.HORIZONTAL_SCROLLBAR_NEVER);      //Barra de desplamiento horizontal nunca visible
        panjtaObservaciones.add(scrollObservaciones);

        Box boxHFichaDireccion = Box.createHorizontalBox();
        Box boxVColumna1Ficha3 = Box.createVerticalBox();
        Box boxHColumna2Ficha3 = Box.createVerticalBox();

        boxVColumna1Ficha3.add(Box.createVerticalStrut(10));
        boxVColumna1Ficha3.add(panNacionalidad);
        boxVColumna1Ficha3.add(Box.createVerticalStrut(5));
        boxVColumna1Ficha3.add(panEstado);
        boxVColumna1Ficha3.add(Box.createVerticalStrut(5));
        boxVColumna1Ficha3.add(panDireccion);
        boxVColumna1Ficha3.add(Box.createVerticalStrut(5));
        boxVColumna1Ficha3.add(panCP);

        boxHColumna2Ficha3.add(Box.createVerticalStrut(8));
        boxHColumna2Ficha3.add(panlblObservaciones);
        boxHColumna2Ficha3.add(panjtaObservaciones);
        JPanel panboxVColumna2Ficha3 = new JPanel(new FlowLayout(FlowLayout.LEFT));
        panboxVColumna2Ficha3.add(boxHColumna2Ficha3);

        boxHFichaDireccion.add(Box.createHorizontalStrut(10));
        boxHFichaDireccion.add(boxVColumna1Ficha3);
        boxHFichaDireccion.add(Box.createHorizontalStrut(20));
        boxHFichaDireccion.add(panboxVColumna2Ficha3);

        panFicha3.add(boxHFichaDireccion);
        ImageIcon iconoFicha3 = new ImageIcon(getClass().getResource("iconoFichaDireccion.gif"));
        jtpDatosEmpleado.addTab("Direccion", iconoFicha3, panFicha3,"Direccion del empleado");

        JPanel panFichas = new JPanel(new FlowLayout(FlowLayout.LEFT));
        JPanel panFichass = new JPanel(new BorderLayout());
        panFichass.add(jtpDatosEmpleado,BorderLayout.CENTER);
        boxVFichas.add(panFichass);
        panFichas.add(boxVFichas);

        Box boxHNombresYFichas = Box.createHorizontalBox();
        boxHNombresYFichas.add(Box.createHorizontalStrut(15));
        boxHNombresYFichas.add(panboxVListaNombres);
        boxHNombresYFichas.add(boxVFichas);

        Box boxHNavegacion = Box.createHorizontalBox();
        JButton btnPrimero = new JButton();
        ImageIcon iconoPrimero = new ImageIcon(getClass().getResource("icono_primero.gif"));
        btnPrimero.setIcon(iconoPrimero);
        btnPrimero.setMargin(new Insets(0, 15, 0, 15));
        JButton btnAnterior = new JButton();
        ImageIcon iconoAnterior = new ImageIcon(getClass().getResource("icono_atras.png"));
        btnAnterior.setIcon(iconoAnterior);
        btnAnterior.setMargin(new Insets(0, 20, 0,20));
        JButton btnSiguiente = new JButton();
        ImageIcon iconoSiguiente = new ImageIcon(getClass().getResource("icono_siguiente.png"));
        btnSiguiente.setIcon(iconoSiguiente);
        btnSiguiente.setMargin(new Insets(0, 20, 0, 20));
        JButton btnUltimo = new JButton();
        ImageIcon iconoUltimo = new ImageIcon(getClass().getResource("icono_ultimo.gif"));
        btnUltimo.setIcon(iconoUltimo);
        btnUltimo.setMargin(new Insets(0, 15, 0,15));
        JLabel lblContadorEmpleados = new JLabel("Empleado 3 de 10");
        lblContadorEmpleados.setFont(new Font("Arial",Font.BOLD,16));
        lblContadorEmpleados.setForeground(Color.BLUE);
        JButton btnGuardar = new JButton();
        ImageIcon iconoGuardar = new ImageIcon(getClass().getResource("icono_guardar.png"));
        btnGuardar.setIcon(iconoGuardar);
        btnGuardar.setMargin(new Insets(0, 6, 0,6));
        btnGuardar.setToolTipText("Guardar modificaciones");
        JButton btnCancelar = new JButton();
        ImageIcon iconoCancelar = new ImageIcon(getClass().getResource("Icono_cancelar.gif"));
        btnCancelar.setIcon(iconoCancelar);
        btnCancelar.setMargin(new Insets(5, 5, 5,5));
        btnCancelar.setToolTipText("Cancelar modificar");

        boxHNavegacion.add(Box.createHorizontalStrut(30));
        boxHNavegacion.add(btnPrimero);
        boxHNavegacion.add(Box.createHorizontalStrut(30));
        boxHNavegacion.add(btnAnterior);
        boxHNavegacion.add(Box.createHorizontalStrut(30));
        boxHNavegacion.add(btnSiguiente);
        boxHNavegacion.add(Box.createHorizontalStrut(30));
        boxHNavegacion.add(btnUltimo);
        boxHNavegacion.add(Box.createHorizontalStrut(30));
        boxHNavegacion.add(lblContadorEmpleados);
        boxHNavegacion.add(Box.createHorizontalStrut(40));
        boxHNavegacion.add(btnGuardar);
        boxHNavegacion.add(Box.createHorizontalStrut(30));
        boxHNavegacion.add(btnCancelar);
        JPanel panNavegacion = new JPanel(new FlowLayout(FlowLayout.LEFT));
        panNavegacion.add(boxHNavegacion);

        //Agregamos el rotulo y luego los botones
        boxContenidoVertical.add(panRotuloPrincipal);
        boxContenidoVertical.add(Box.createVerticalStrut(5));
        boxContenidoVertical.add(panBotonesPrincipales);
        boxContenidoVertical.add(Box.createVerticalStrut(5));
        boxContenidoVertical.add(panBusquedaYNombre);
        boxContenidoVertical.add(Box.createVerticalStrut(5));
        boxContenidoVertical.add(boxHNombresYFichas);
        boxContenidoVertical.add(Box.createVerticalStrut(20));
        boxContenidoVertical.add(panNavegacion);

        //Todo el contenido del JFrame esta en un JPanel
        JPanel panContenidoVertical = new JPanel(new FlowLayout(FlowLayout.LEFT));
        panContenidoVertical.add(boxContenidoVertical);
        add(panContenidoVertical);

    	// ########### ESCUCHADOR BOTON REGRESAR   ##########
    	ActionListener escuchadorRegresar = new ActionListener()
    	{
        	public void actionPerformed(ActionEvent evt)
        	{
				JfrPrincipal.mostrar();
				setVisible(false);
        	}
   		};
    	btnCerrarEmpleados.addActionListener(escuchadorRegresar);

// ##################### ESCUCHADOR DE VENTANA ####################################################################################
    //Para que al dar clic en la x de la esquina de este JFrame se muestre por default la ventana principal
	this.addWindowListener(new WindowAdapter() {

			public void windowClosing(WindowEvent e)
			{
				JfrPrincipal.mostrar();
				setVisible(false);
			}

			public void windowClosed(WindowEvent e)
			{
				JfrPrincipal.mostrar();
				setVisible(false);
			}
		});

    }

    public void mostrar()
    {
    	this.setLocationRelativeTo(this);	//Centramos este JFrame en la pantalla
    	setVisible(true);
    }
}

y aca los pantallazos de la ejecucion del codigo de esta clase:

Ficha Datos Laborales

Ficha Datos personales

Ficha Direccion

hasta pronto.
}