Uso del diseño null

En vez de utilizar un gestor de diseño que controle el tamaño y posición de todos los componentes de un contenedor, se puede establecer el gestor de diseño en null. Cada componente controlará su propio tamaño y posición utilizando sus límites.

Si pulsa el botón derecho del ratón sobre el contenedor y establece la opción Mostrar rejilla, puede arrastrar, soltar y mover componentes a un punto de la rejilla, proporcionando la posibilidad de alinear componentes en posiciones sin utilizar las acciones de alineación:
Mostrar Rejilla en el diseño null

También puede arrancar con el gestor de diseño establecido en null, y cambiar luego a un diseño (como GridBagLayout) para que el editor visual de Java calcule los valores de restricción. La ventaja de que cada componente controle su propio tamaño y posición es que se puede especificar x, y, ancho y alto y así estar seguro de que siempre se utilizarán dichos valores en tiempo de ejecución. La desventaja de fijar el tamaño y altura es que no se redimensionarán si el usuario cambia el tamaño de la aplicación o si las etiquetas en componentes como botones o recuadros de selección cambian según el font de usuario o el entorno local.

Para ver este comportamiento en el editor visual de Java, se puede utilizar la lista desplegable de valores en la vista Propiedades de las propiedades del Diseño y seleccionar null.

Cuando se establece en null el gestor de diseño para un contenedor existente, la vista Diseño no cambia de aspecto. El editor visual calcula los límites actuales de cada componente y los establece automáticamente de forma explícita. Por ejemplo, supongamos que tenemos un contenedor que utiliza el gestor de diseño FlowLayout y contiene un bean JLabel. Antes de establecer el diseño en null, el código para inicializar el bean JLabel sólo tiene establecida su propiedad label, según se muestra a continuación:

private javax.swing.JLabel getIvjJLabel(){
    if(ivjJLabel == null) {
       ivjJLabel = new javax.swing.JLabel();
       ivjJLabel.setText("JLabel");
    }
    return ivjJLabel;
}

Si se utiliza la vista Propiedades para cambiar a null el gestor de diseño, el código quedaría como sigue:

private javax.swing.JLabel getIvjJLabel(){
    if(ivjJLabel == null) {
       ivjJLabel = new javax.swing.JLabel();
       ivjJLabel.setBounds(59, 10, 38, 15);
       ivjJLabel.setText("JLabel");
    }
    return ivjJLabel;
}

En el mismo ejemplo, en cuanto se establece en null el gestor de diseño, la vista Propiedades de cada componente visualiza los valores de los límites, tamaño y ubicación. Estos valores no aparecen cuando el contenedor padre utiliza cualquier otro gestor de diseño, ya que las propiedades del componente no cambian cuando el gestor de diseño controla la posición y el tamaño.

Cuando se establece en null el diseño para un contenedor, los bordes de cada componente de la vista Diseño permiten el redimensionado. También se puede redimensionar un bean cuando se añade desde la paleta. Solamente hay que mantener pulsado el botón izquierdo del ratón cuando se suelta el bean en la vista Diseño, y arrastrar el puntero hasta que el bean tenga el tamaño adecuado. Hay un rectángulo que muestra el tamaño inicial. En cualquier otro gestor de diseño sólo se pueden mover y añadir componentes.

Tema padre: Diseño de componentes utilizando el editor visual

Conceptos relacionados
Gestores de diseño y componentes

(C) Copyright IBM Corporation 1999, 2004. Reservados todos los derechos.