public BorderDemo()
{
// 设置框架窗口的标题
super("使用
边框的例子");
// 定义5个简单类型的边框
Border blackline, etched, raisedbevel, loweredbevel, empty;
// 创建黑色的线状边框
blackline = BorderFactory.createLineBorder(Color.black);
// 创建蚀刻边框
etched = BorderFactory.createEtchedBorder();
// 创建凸出边框
raisedbevel = BorderFactory.createRaisedBevelBorder();
// 创建凹陷边框
loweredbevel = BorderFactory.createLoweredBevelBorder();
// 创建空的边框
empty = BorderFactory.createEmptyBorder();
// First pane: simple borders
JPanel simpleBorders = new JPanel();
simpleBorders.setLayout(new BoxLayout(simpleBorders, BoxLayout.Y_AXIS));
addCompForBorder(blackline, "线状边框", simpleBorders);
addCompForBorder(etched, "蚀刻边框", simpleBorders);
addCompForBorder(raisedbevel, "凸出边框", simpleBorders);
addCompForBorder(loweredbevel, "凹陷边框", simpleBorders);
addCompForBorder(empty, "空的边框", simpleBorders);
// Second pane: titled borders
JPanel titledBorders = new JPanel();
titledBorders.setLayout(new BoxLayout(titledBorders, BoxLayout.Y_AXIS));
TitledBorder titled;
titled = BorderFactory.createTitledBorder("title");
addCompForBorder(titled, "default titled border" + " (default just., default pos.)", titledBorders);
titled = BorderFactory.createTitledBorder(blackline, "title");
addCompForTitledBorder(titled, "titled line border" + " (centered, default pos.)", TitledBorder.CENTER, TitledBorder.DEFAULT_POSITION, titledBorders);
titled = BorderFactory.createTitledBorder(etched, "title");
addCompForTitledBorder(titled, "titled etched border" + " (right just., default pos.)", TitledBorder.RIGHT, TitledBorder.DEFAULT_POSITION, titledBorders);
titled = BorderFactory.createTitledBorder(loweredbevel, "title");
addCompForTitledBorder(titled, "titled lowered bevel border" + " (default just., above top)", TitledBorder.DEFAULT_JUSTIFICATION, TitledBorder.ABOVE_TOP, titledBorders);
titled = BorderFactory.createTitledBorder(empty, "title");
addCompForTitledBorder(titled, "titled empty border" + " (default just., bottom)", TitledBorder.DEFAULT_JUSTIFICATION, TitledBorder.BOTTOM, titledBorders);
// 创建TabbledPane组件
JTabbedPane tabbedPane = new JTabbedPane();
tabbedPane.addTab("简单的边框", null, simpleBorders, null);
tabbedPane.addTab("带有标题的边框", null, titledBorders, null);
tabbedPane.setSelectedIndex(0);
getContentPane().add(tabbedPane, BorderLayout.CENTER);
}
// 添加带有标题的边框
void addCompForTitledBorder(TitledBorder border, String description, int justification, int position, Container container)
{
border.setTitleJustification(justification);
border.setTitlePosition(position);
addCompForBorder(border, description, container);
}
// 添加简单的边框
void addCompForBorder(Border border, String description, Container container)
{
JPanel comp = new JPanel(false);
JLabel label = new JLabel(description, JLabel.CENTER);
comp.setLayout(new GridLayout(1, 1));
comp.add(label);
comp.setBorder(border);
container.add(Box.createRigidArea(new Dimension(0, 10)));
// 设置间隔
container.add(comp);
}
// 程序的入口方法
public static void main(String[] args)
{
JFrame. frame. = new BorderDemo();
// 添加框架窗口的事件监听(监听关闭框架窗口事件)
frame.addWindowListener(new WindowAdapter()
{
public void windowClosing(WindowEvent e)
{
// 正常推出Java虚拟机
System.exit(0);
}
});
// 显示框架窗口
frame.pack();
frame.setVisible(true);
}
}