该例是为了展示支架的使用。支架是为了把组件隔开固定的距离。
(1)Box2.java
import javax.swing.*;
import java.awt.*;
public class Box2 extends JApplet
{
public void init()
{
Box bv=Box.createVerticalBox();
for(int i=0;i<5;i++)
{
bv.add(new JButton("bv "+i));
bv.add(Box.createVerticalStrut(i*10));
}
Box bh=Box.createHorizontalBox();
for(int i=0;i<5;i++)
{
bh.add(new JButton("bh "+i));
bh.add(Box.createHorizontalStrut(i*10));
}
Container cp=getContentPane();
cp.add(BorderLayout.EAST,bv);
cp.add(BorderLayout.SOUTH,bh);
}
public static void main(String[] args)
{
Console.run(new Box2(),450,300);
}
}
(2)Console.java
import javax.swing.*;
public class Console
{
public static String title(Object o)
{
String t=o.getClass().toString();
if(t.indexOf("class")!=-1)
{
t=t.substring(6);
}
return t;
}
public static void run(JFrame frame,int width,int height)
{
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setSize(width,height);
frame.setVisible(true);
}
public static void run(JApplet applet,int width,int height)
{
JFrame frame=new JFrame(title(applet));
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.getContentPane().add(applet);
frame.setSize(width,height);
applet.init();
applet.start();
frame.setVisible(true);
}
public static void run(JPanel panel,int width,int height)
{
JFrame frame=new JFrame(title(panel));
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.getContentPane().add(panel);
frame.setSize(width,height);
frame.setVisible(true);
}
}