package zikao.swing;
import javax.swing.*;
import javax.swing.border.*;
import java.awt.*;
public class SwingBorderDemo {
/*
特殊的Border:
1,TitleBorder 为其它边框设计标题 需要有一个其它的Border对象
2,CompoundBorder: 组合两个边框,创建对象时需要两个参数 分别为内外边距
*/
/*
为组件设置边框的步骤:
1,创建Border的实例化对象
2,调用Swing组件中的setBorder(Border b) 方法为其设计边框
*/
JFrame jFrame = new JFrame("这里测试边框");
public void init() {
jFrame.setLayout(new GridLayout(2, 4));
//创建BevelBorder
Border bevelBorder = BorderFactory.createBevelBorder(BevelBorder.RAISED, Color.RED, Color.GREEN, Color.BLUE, Color.YELLOW);
jFrame.add(getJPanelWithBorder(bevelBorder, "BevelBorder"));
//创建LineBorder
Border lineBorder = BorderFactory.createLineBorder(Color.ORANGE, 10);
jFrame.add(getJPanelWithBorder(lineBorder, "LineBorder"));
//创建EmptyBorder
Border emptyBorder = BorderFactory.createEmptyBorder(10, 5, 20, 10);
jFrame.add(getJPanelWithBorder(emptyBorder, "EmptyBorder"));
//创建EtchedBorder
Border etchedBorder = BorderFactory.createEtchedBorder(EtchedBorder.RAISED, Color.GREEN, Color.RED);
jFrame.add(getJPanelWithBorder(etchedBorder, "EtchedBorder"));
//创建TitleBorder
TitledBorder titledBorder = new TitledBorder(new LineBorder(Color.ORANGE, 10), "我是TitleBorder");
jFrame.add(getJPanelWithBorder(titledBorder, "TitleBorder"));
//创建MatteBorder
MatteBorder matteBorder = new MatteBorder(10, 5, 20, 10, Color.GREEN);
jFrame.add(getJPanelWithBorder(matteBorder, "MatteBorder"));
//创建CompoundBorder
CompoundBorder compoundBorder = new CompoundBorder(new TitledBorder(new LineBorder(Color.ORANGE, 10), "我是CompoundBorder"), new LineBorder(Color.RED, 5));
jFrame.add(getJPanelWithBorder(compoundBorder, "CompoundBorder"));
jFrame.pack();
jFrame.setVisible(true);
jFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
public JPanel getJPanelWithBorder(Border border, String comment) {
JPanel jPanel = new JPanel();
jPanel.add(new JLabel(comment));
jPanel.setBorder(border);
return jPanel;
}
public static void main(String[] args) {
new SwingBorderDemo().init();
}
}
效果图