You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

80 lines
2.0 KiB
Java

Box Layout Demo
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
public class BoxLayoutDemo extends JFrame {
public BoxLayoutDemo()
{
super( "Demostrating BoxLayout" );
final int SIZE = 3;
Container c = getContentPane();
c.setLayout( new BorderLayout( 30, 30 ) );
Box boxes[] = new Box[ 4 ];
boxes[ 0 ] = Box.createHorizontalBox();
boxes[ 1 ] = Box.createVerticalBox();
boxes[ 2 ] = Box.createHorizontalBox();
boxes[ 3 ] = Box.createVerticalBox();
// add buttons to boxes[ 0 ]
for ( int i = 0; i < SIZE; i++ )
boxes[ 0 ].add( new JButton( "boxes[0]: " + i ) );
// create strut and add buttons to boxes[ 1 ]
for ( int i = 0; i < SIZE; i++ ) {
boxes[ 1 ].add( Box.createVerticalStrut( 25 ) );
boxes[ 1 ].add( new JButton( "boxes[1]: " + i ) );
}
// create horizontal glue and add buttons to boxes[ 2 ]
for ( int i = 0; i < SIZE; i++ ) {
boxes[ 2 ].add( Box.createHorizontalGlue() );
boxes[ 2 ].add( new JButton( "boxes[2]: " + i ) );
}
// create rigid area and add buttons to boxes[ 3 ]
for ( int i = 0; i < SIZE; i++ ) {
boxes[ 3 ].add(
Box.createRigidArea( new Dimension( 12, 8 ) ) );
boxes[ 3 ].add( new JButton( "boxes[3]: " + i ) );
}
// create horizontal glue and add buttons to panel
JPanel panel = new JPanel();
panel.setLayout(
new BoxLayout( panel, BoxLayout.Y_AXIS ) );
for ( int i = 0; i < SIZE; i++ ) {
panel.add( Box.createGlue() );
panel.add( new JButton( "panel: " + i ) );
}
// place panels on frame
c.add( boxes[ 0 ], BorderLayout.NORTH );
c.add( boxes[ 1 ], BorderLayout.EAST );
c.add( boxes[ 2 ], BorderLayout.SOUTH );
c.add( boxes[ 3 ], BorderLayout.WEST );
c.add( panel, BorderLayout.CENTER );
setSize( 350, 300 );
show();
}
public static void main( String args[] )
{
BoxLayoutDemo app = new BoxLayoutDemo();
app.addWindowListener(
new WindowAdapter() {
public void windowClosing( WindowEvent e )
{
System.exit( 0 );
}
}
);
}
}