2009-09-30 11 views
6

En .net hay un control llamado anclaje que se usa para cambiar el tamaño de los controles dinámicamente con el formulario. Cuando un control está anclado a un formulario y la forma se redimensiona, el control mantiene la distancia entre el control y las posiciones de anclaje.Controles de anclaje y acoplamiento en java Swing

Mi pregunta es que hay controles en Java que tengan la misma funcionalidad que el anclaje en .net.
Como un ejemplo, he seleccionado un campo de texto y lo puse en el panel y lo redimensioné correctamente. Ahora cuando cambio el tamaño de la ventana (JFrame) o maximizo la ventana, el campo de texto no mantendrá la misma distancia que antes. He estado usando netbeans y no he encontrado ninguna propiedad en pallete manager que responda mi pregunta. Por favor, explícame con un ejemplo o algunos enlaces.

Respuesta

4

Java swing utiliza Controladores de Distribución para gestionar el tamaño y la posición el de componentes visuales. Este es el tutorial oficial de Java sobre cómo utilizar esta controladores de disposición:

http://java.sun.com/docs/books/tutorial/uiswing/layout/using.html

Y hay una breve descripción de los controladores de distribución más comunes

FlowLayout (por defecto): se dispone de los componentes que quedan a la derecha y de arriba hacia abajo.

BorderLayout: divide el contenedor en el CENTRO DE NORTE, SUROESTE, ESTE CENTRO. Solo un componente por posición. Los componentes en el borde se expanden y el componente central usa el espacio disponible

GridLayout: inicializa el administrador indicando cuántas filas y columnas tendrá la grilla. Cada celda tiene el mismo tamaño y comienza a agregar componente en la celda superior izquierda.

GridBagLayout: el gestor de diseño de grano más fino, puede hacer cualquier cosa con esto, pero es un poco complicado, consulte la documentación de Java correspondiente.

NullLayout (cuando se anula el administrador del diseño del contenedor): no hay administrador de diseño, los componentes usan las propiedades de ubicación y tamaño para mostrar en los componentes.

Y, por supuesto, los contenedores dentro de otros contenedores pueden usar un administrador de diseño diferente al de sus padres. La combinación de administradores de diseño es un arte difícil de aprender.

1

Netbeans tiene soporte incorporado para diseñar GUIs utilizando el constructor de Matisse GUI. Esto es lo más cercano que obtendrá al arrastrar & diseño de formulario de estilo de gota que está disponible con entornos como VB.

Hay una demostración de flash here.

(Personalmente no soy un gran fan de este enfoque, ya que aunque genera automáticamente una gran cantidad de código que rápidamente se convierte en imposible de mantener, especialmente si no todos en su equipo de desarrollo está utilizando Netbeans.)

0

Si usted tiene solo obtuvo un solo control luego usando java.awt.BorderLayout y agregar su control con BorderLayout.CENTER es su mejor opción.

Si tiene múltiples controles, entonces necesita usar java.awt.GridBagLayout.

Es necesario configurar lo siguiente:

gridBagConstraints.anchor = GridBagConstraints.NORTHWEST; 
gridBagConstraints.fill = GridBagConstraints.BOTH; 
gridBagConstraints.weightx = 1; 
gridBagConstraints.weighty = 1; 

al agregar el control que desea cambiar el tamaño.

Hay un tutorial sobre ello aquí:

http://java.sun.com/docs/books/tutorial/uiswing/layout/gridbag.html