Creating Rigid Areas: Strut : Box « Swing « Java Tutorial






  1. Struts can be two-dimensional, requiring you to specify the width and height of the component;
  2. Or, they can be one-dimensional, requiring you to specify either the width or height.
public static Component createRigidArea(Dimension dimension)

// Two-dimensional
Component rigidArea = Box. createRigidArea(new Dimension(10, 10));
aBox.add(rigidArea);


public static Component createHorizontalStrut(int width)
// One-dimensional: horizontal
Component horizontalStrut = Box. createHorizontalStrut(10);
aBox.add(horizontalStrut);



public static Component createVerticalStrut(int height)
// One-dimensional: vertical
Component verticalStrut = Box. createVerticalStrut(10);
aBox.add(verticalStrut);
Creating Rigid Areas: Strut
import java.awt.GridLayout;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;

import javax.swing.BorderFactory;
import javax.swing.Box;
import javax.swing.BoxLayout;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;

public class BoxLayoutGlueStrutCompare extends JFrame {

  public BoxLayoutGlueStrutCompare() {
    JPanel p = new JPanel(new GridLayout(3, 1));

    JPanel p1 = new JPanel();
    Box box1 = new Box(BoxLayout.X_AXIS);
    box1.add(Box.createHorizontalGlue());
    box1.add(new JButton("glue-strut"));
    box1.add(Box.createHorizontalStrut(15));
    box1.add(new JButton("strut-glue"));
    box1.add(Box.createHorizontalGlue());
    p1.add(box1);
    p1.setBorder(BorderFactory.createRaisedBevelBorder());

    JPanel p2 = new JPanel();
    Box box2 = new Box(BoxLayout.X_AXIS);
    box2.add(Box.createHorizontalStrut(25));
    box2.add(new JButton("strut-glue"));
    box2.add(Box.createHorizontalGlue());
    box2.add(new JButton("glue-strut"));
    box2.add(Box.createHorizontalStrut(25));
    p2.add(box2);
    p2.setBorder(BorderFactory.createRaisedBevelBorder());

    JPanel p3 = new JPanel();
    Box box3 = new Box(BoxLayout.X_AXIS);
    box3.add(Box.createHorizontalStrut(25));
    box3.add(new JButton("strut-glue"));
    box3.add(Box.createHorizontalGlue());
    box3.add(new JButton("glue-glue"));
    box3.add(Box.createHorizontalGlue());
    p3.add(box3);
    p3.setBorder(BorderFactory.createRaisedBevelBorder());

    p.add(p1);
    p.add(p2);
    p.add(p3);
    getContentPane().add(p);
    this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    pack();
  }

  public static void main(String[] args) {
    BoxLayoutGlueStrutCompare ex1 = new BoxLayoutGlueStrutCompare();
    ex1.setVisible(true);
  }
}








14.88.Box
14.88.1.Box simplifies working with BoxLayoutBox simplifies working with BoxLayout
14.88.2.new Box(BoxLayout.Y_AXIS)
14.88.3.Working with Box.Filler: Glue and Strut
14.88.4.Creating Rigid Areas: StrutCreating Rigid Areas: Strut
14.88.5.Box.createVerticalGlue()Box.createVerticalGlue()