swing中定义的边界有那么几种,空边界EmptyBorder,线边界LineBorder,斜切边界BevelBorder,软斜切边界SoftBevelBorder,粗糙边界MatteBorder,混合边界CompoundBorder,标题边界TitledBorder,蚀刻边界EtchedBorder,下面将通过一个小小的例子,分别展示这几个边界是怎么用,又是什么效果的。
class LabelPanel extends JPanel { Border border; JLabel label; public LabelPanel() { // 3.为面板设置3行*4列,横纵间距为5的网格布局 setLayout(new GridLayout(3, 4, 15, 15)); // 4. 创建一个EmptyBorder 的标签 label = new JLabel("Empty", JLabel.CENTER); label.setOpaque(true); // 创建一个EmptyBorder(top,left,bottom,right) border = new EmptyBorder(1, 1, 1, 1); // 将边界分配给标签. label.setBorder(border); add(label); // 5.(roate a label wi Lt. ar. etched border. label = new JLabel("Etched RAISED", JLabel.CENTER); label.setOpaque(true); //创建一个凸起的蚀刻边界 border = new EtchedBorder(EtchedBorder.RAISED); label.setBorder(border); add(label); // 6. 创建一个下凹带颜色边界的标签. label = new JLabel("Etched LOWERED", JLabel.CENTER); label.setOpaque(true); //EtchedBorder(int etchType, Color 高亮, Color 阴影) border = new EtchedBorder(EtchedBorder.LOWERED, Color.red, Color.blue); label.setBorder(border); add(label); // 7.创建一个凸起斜切边界的标签. label = new JLabel(" Bevel Up", JLabel.CENTER); label.setOpaque(true); border = new BevelBorder(BevelBorder.RAISED);// Raisedbevel type label.setBorder(border); add(label); // 8. 创建一个下凹斜切边界的标签. label = new JLabel("Bevel Down", JLabel.CENTER); label.setOpaque(true); border = new BevelBorder(BevelBorder.LOWERED);// Lowered bevel type label.setBorder(border); add(label); // 9. 创建一个带颜色的凸起斜切边界的标签 label = new JLabel("ColoredBevel", JLabel.CENTER); label.setOpaque(true); border = new BevelBorder(BevelBorder.RAISED, // Raised bevel type Color.gray, Color.yellow); // Hightlight and sba& ' colors label.setBorder(border); add(label); // 10. 创建一个下凹的软斜切边界的标签. label = new JLabel("SoftBevel LOWERED", JLabel.CENTER); label.setOpaque(true); border = new SoftBevelBorder(BevelBorder.LOWERED); label.setBorder(border); add(label); // 11. 创建一个粗糙边界的标签.. label = new JLabel("Matte 图标", JLabel.CENTER); label.setOpaque(true); Icon icon = new ImageIcon("a.gif"); // top = 20, left = 20, bottom = 20; right = 20 and matte icon border = new MatteBorder(20, 20, 20, 20, icon); label.setBorder(border); add(label); // 12. 创建一个线边界的标签.. label = new JLabel(" line", JLabel.CENTER); label.setOpaque(true); border = new LineBorder(Color.red, // Line color = red 5);// line thickness 5. label.setBorder(border); add(label); // 13. 创建一个灰色线边界的标签 label = new JLabel("GrayLine", JLabel.CENTER); label.setOpaque(true); // 创建一个灰色的、宽度为1的LineBorder border = LineBorder.createGrayLineBorder(); label.setBorder(border); add(label); // 14. 创建一个混合边界的标签. label = new JLabel("BevelBorder \n EtchedBorder", JLabel.CENTER); label.setOpaque(true); // 创建混合了蚀刻边界和斜切边界的边界 border = new CompoundBorder(new BevelBorder(BevelBorder.RAISED), new EtchedBorder(EtchedBorder.RAISED)); label.setBorder(border); add(label); // 15 创建个带标题边界的标签. label = new JLabel("Titled", JLabel.CENTER); label.setOpaque(true); border = new TitledBorder(new LineBorder(Color.red), "Lined&Titled",// 标题 TitledBorder.CENTER, // Title just_ficaticr. TitledBorder.CENTER, // 标题位置. new Font("Sans", Font.BOLD, 16),// 字体. Color.blue); // 颜色 label.setBorder(border); add(label); } }
再创建一个新的窗口,把上面这个面板添加进去,就能看到效果图了