2011-04-26 17 views
18

que tienen algunos problemas para entender estas dos propiedades. ¿Cómo debo dar peso a los componentes? ¿Cómo se calculan estos números? Intenté leer varios artículos en la web, pero no los entiendo.weightx y de peso en Java GridBagLayout

Gracias.

Respuesta

16

Si el espacio dentro de un panel es mayor que el preferredDimension de los componentes contenidos dentro de, la weightx y de peso se utiliza para distribuir el espacio adicional para los componentes individuales.

valores de uso de 0.0 a 1.0 (pensar en este porcentaje).

  • weightx es espaciado horizontal

  • de peso es espaciado vertical

El escenario más común en ordenadores de sobremesa es que los paneles laterales se pueden alojar un tamaño fijo (weightx/peso = 0,0) y el panel central ocupa el espacio restante (weightx/weighty = 1.0). sin embargo, al usar variaciones, puede tener un control total de cómo la aplicación cambia el tamaño de los componentes individuales a medida que cambia el tamaño del Marco.

+2

muy buena, pero no tiene que utilizar valores de 0,0 a 1,0. Los valores pueden ser cualquier cosa. El espacio adicional se asigna por el porcentaje del peso de los componentes individuales dividido por el peso total de todos los componentes en la fila o columna. –

+0

De hecho. Solo sugerí usar entre 0.0 y 1.0 porque es la mejor práctica, y hace que sea más fácil leer el código si se piensa en términos porcentuales. – Codemwnci

+2

Gracias. Entonces, si dos botones tienen un pesox de 0.2 y 0.8, ¿uno de los botones tendrá "20%" y el otro "80%" del espacio? – LuckyLuke

2

weightx y weighty se usan para determinar cómo distribuir espacio entre columnas y entre filas.

Estos valores son importantes para especificar el cambio de tamaño behavior.If no se especifica ninguna de weightx o pesada, todos los componentes se agrupan en el centro de su contenedor. Consulte el documento de GridBagLayout para obtener más información.

Para cada columna, el peso está relacionado con la más alta weightx especificado para un componente dentro de esa columna. Del mismo modo, el peso de cada fila está relacionado con el peso más alto especificado para un componente dentro de esa fila.

Cuestiones relacionadas