Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How can I add a space in between two buttons in a boxLayout?

I have four buttons in a BoxLayout group. This is just a sample of two because it's all repeated code. I want to create a slight space between each button so they don't run into each other. I have tried practically every method in the .add(Box.Create....) and nothing worked.

    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());
like image 435
Susie Avatar asked Dec 01 '11 02:12

Susie


People also ask

What is box layout?

Box Layout Features. As said before, BoxLayout arranges components either on top of each other or in a row. As the box layout arranges components, it takes the components' alignments and minimum, preferred, and maximum sizes into account.

How do you add a box in Java?

Box box = new Box(BoxLayout. X_AXIS); box. add(button1); box.

How does Java's Borderlayout work?

A border layout lays out a container, arranging and resizing its components to fit in five regions: north, south, east, west, and center. Each region may contain no more than one component, and is identified by a corresponding constant: NORTH , SOUTH , EAST , WEST , and CENTER .


1 Answers

If you want to have space between components, you can either add an empty border to one or both components, or insert invisible components to provide the space. You can create invisible components with the help of the Box class.

since you already used glue with no success (I doubt why?), you may try something like Rigid area,

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

Have a look at Using Invisible Components as Filler which gives you a lot of options and explanations.


ADDITIONAL INFORMATION, From Putting Space Between Components,

Three factors influence the amount of space between visible components in a container:

  • The layout manager

    Some layout managers automatically put space between components; others do not. Some let you specify the amount of space between components. See the how-to page for each layout manager for information about spacing support.

  • Invisible components

    You can create lightweight components that perform no painting, but that can take up space in the GUI. Often, you use invisible components in containers controlled by BoxLayout. See How to Use BoxLayout for examples of using invisible components.

  • Empty borders

    No matter what the layout manager, you can affect the apparent amount of space between components by adding empty borders to components. The best candidates for empty borders are components that typically have no default border, such as panels and labels. Some other components might not work well with borders in some look-and-feel implementations, because of the way their painting code is implemented. For information about borders, see How to Use Borders .

like image 109
COD3BOY Avatar answered Sep 27 '22 00:09

COD3BOY