2011-12-01 64 views
36

Tengo cuatro botones en un grupo BoxLayout. Esto es solo una muestra de dos porque es todo código repetido. Quiero crear un espacio pequeño entre cada botón para que no se encuentren entre sí. He intentado prácticamente todos los métodos en el .add(Box.Create....) y nada funcionó.¿Cómo puedo agregar un espacio entre dos botones en un boxLayout?

enter.add(Box.createVerticalGlue()); 
    enter.add(Box.createHorizontalGlue()); 
    //enter.add(new JSeparator(SwingConstants.HORIZONTAL)); 
    JButton float = new JButton("LOWER"); 
    float.add(Box.createVerticalGlue()); 
    float.add(Box.createHorizontalGlue()); 
+0

Oh! No me di cuenta de que podrías hacer eso. – Susie

+1

Me alegro de ayudar. También puede visitar algunas de sus [preguntas anteriores] (http://stackoverflow.com/users/998505/susie?tab=questions) para verificar si tienen respuestas que pueden marcarse como "correctas". –

Respuesta

71

Si desea tener espacio entre los componentes, puede agregar un borde vacío a uno o ambos componentes, o insertar componentes invisibles para proporcionar el espacio. Puede crear componentes invisibles con la ayuda de la clase Box.

puesto que ya utilizó pegamento sin éxito (dudo por qué?), Puede intentar algo así como zona rígida al,

container.add(firstComponent); 
container.add(Box.createRigidArea(new Dimension(5,0))); 
container.add(secondComponent); 

Tenga una mirada en Using Invisible Components as Filler que le da una gran cantidad de opciones y explicaciones .


INFORMACIÓN ADICIONAL, De Putting Space Between Components,

Hay tres factores que influyen en la cantidad de espacio entre los componentes visibles en un recipiente:

  • el controlador de distribución

    Algunos controladores de distribución poner automáticamente espacio entre los componentes; Otros no lo hacen. Algunos le permiten especificar la cantidad de espacio entre los componentes. Consulte la página de instrucciones para cada administrador de diseño para obtener información sobre el soporte de espaciado.

  • componentes invisibles

    Puede crear componentes ligeros que realizan ninguna pintura, pero que puede ocupar espacio en la interfaz gráfica de usuario. A menudo, utiliza componentes invisibles en contenedores controlados por BoxLayout. Consulte How to Use BoxLayout para ver ejemplos del uso de componentes invisibles.

  • fronteras vacíos

    No importa cuál sea el controlador de distribución, que pueden afectar a la cantidad aparente de espacio entre los componentes añadiendo bordes vacíos a los componentes. Los mejores candidatos para bordes vacíos son componentes que normalmente no tienen ningún borde predeterminado, como paneles y etiquetas. Es posible que algunos otros componentes no funcionen bien con las fronteras en algunas implementaciones de apariencia y sentido, debido a la forma en que se implementa su código de pintura. Para obtener información acerca de las fronteras, consulte How to Use Borders.

+0

Gran respuesta, muy completa. +1 –

+0

Muchas gracias, ¡esta información fue muy útil! – Susie

Cuestiones relacionadas