Generador de formularios


Introducción

Para evitar el repetitivo trabajo de diseño de formulario nos planteamos crear una clase del tipo JPanel que pudise recibir un vector de componentes. El panel se encarga de organizar los componentes de la forma adecuada.

Para tratar los componentes hemos creado tres clases, que heredan de una clase abstracta (ComponenteDin); estas clases encapsulan los componentes gráficos JLabel, JTextField y JComboBox. La forma de crear el vector de componentes es sencilla:


	 //// Creamos componentes de texto, indicando valor, titulo, tamaño del componente y alineamiento
	 //// El tamaño se puede especificar como Dimension (pixels) o como columnas (caracteres)
	 ComponenteDin.ANCHURA_ETIQUETA = 70;
	 componentes.add( new ComponenteDinTXT( "Lopez Quesada", "Apellidos", new Dimension( 160, 20)) );
	 componentes.add( new ComponenteDinTXT( "Pedro", "Nombre", new Dimension( 100, 20)) );
	 componentes.add( new ComponenteDinTXT( "34", "Edad", 2 ) );  // Columnas
	 componentes.add( new ComponenteDinTXT( "V", "Sexo") );
	 //// Alineado a la derecha
	 componentes.add( new ComponenteDinTXT( "2000", "Crédito", new Dimension( 90, 20), false ) );

	 //// Creamos componente combobox, antes creamos el vector de items
	 Vector oficinas = new Vector();
	 oficinas.add( "Madrid");
	 oficinas.add( "Bilbao");
	 oficinas.add( "Barcelona");
	 componentes.add( new ComponenteDinCBB( "Bilbao", oficinas, "Oficina", new Dimension( 120, 20)) );

	 //// Creamos componente para etiqueta con color rojo
	 ComponenteDin c = new ComponenteDinLBL( "En baja laboral" );
	 c.getComponenteGrafico().setForeground( Color.RED);
	 componentes.add( c );

	 //// Creamos el panel, mandandole vector de componentes, tamaño y titulo
	 panel = new PanelForm( componentes, getSize(), "Ficha personal");
	 //// Configuro el botón
	 panel.configBoton( "Guardar", "GGG", new Dimension(90,24), new listener_botonAceptar(this));

	 //// Inicio de presentación
	 panel.iniciar();

	 contRaiz.add( panel, BorderLayout.CENTER );

De esta forma nos olvidamos del trabajo sucio del formulario y nos centramos en la información que deseamos presentar. Existen prolongaciones interesantes para este caso; por ejemplo, hacer que la definición de los componentes derive de un archivo XML.

Código fuente


Volver al índice