P38 Border边框

清疚 2024-04-06 09:51 115阅读 0赞

P38 Border边框

  • 1.概述
  • 2.边框的创建
    • 2.1 空边框
    • 2.2 线边框
    • 2.3 标题边框
    • 2.4 其他边框
  • 3.代码实例
  • 4.效果演示

系统:Win10
Java:1.8.0_333
IDEA:2020.3.4
Gitee:https://gitee.com/lijinjiang01/JavaSwing

1.概述

Border:边框。边框是对组件边界的装饰,例如为组件增加矩形有色边框,为透明的容器增加带标题的边框,增加组件的内边距,为组件增加浮雕化/凹凸斜面/阴影外观等,让组件看起来更美观。
组件边框的设置:

  1. // 创建边框
  2. Border border = BorderFactory.createXxxxBorder(...);
  3. // 设置组件的边框
  4. component.setBorder(border);

创建组件边框,使用 BorderFactory 工厂类中的静态方法窗口,支持许多各种不同形式的边框。

2.边框的创建

常用边框的创建(BorderFactory 中的静态方法)

2.1 空边框

  1. // 创建一个不占用空间的空边控(边界宽度均为0)
  2. static Border createEmptyBorder();
  3. // 创建一个占用空间但不绘制的空边框,指定四条边占用的宽度(内边距效果)
  4. static Border createEmptyBorder(int top, int left, int bottom, int right);

2.2 线边框

  1. /**
  2. * 参数说明:
  3. * color: 线条颜色
  4. * thickness: 线宽(默认为1px)
  5. * rounded: 是否有圆角
  6. */
  7. static Border createLineBorder(Color color);
  8. static Border createLineBorder(Color color, int thickness);
  9. static Border createLineBorder(Color color, int thickness, boolean rounded);

2.3 标题边框

  1. /**
  2. * 参数说明:
  3. * border: 在此边框基础上添加标题,可以传 null
  4. *
  5. * title: 需要添加的标题
  6. *
  7. * titleJustification: 标题对齐方式,该值为一下之一:
  8. * TitledBorder.LEFT
  9. * TitledBorder.CENTER
  10. * TitledBorder.RIGHT
  11. * TitledBorder.LEADING
  12. * TitledBorder.TRAILING
  13. * TitledBorder.DEFAULT_JUSTIFICATION (leading)
  14. *
  15. * titlePosition: 标题显示的位置(相对于边框的纵向位置),该值为一下之一:
  16. * TitledBorder.ABOVE_TOP
  17. * TitledBorder.TOP(位于顶线上)
  18. * TitledBorder.BELOW_TOP
  19. * TitledBorder.ABOVE_BOTTOM
  20. * TitledBorder.BOTTOM(位于底线上)
  21. * TitledBorder.BELOW_BOTTOM
  22. * TitledBorder.DEFAULT_POSITION(顶部)
  23. *
  24. * titleFont: 标题的字体
  25. *
  26. * titleColor: 标题的颜色
  27. */
  28. static TitledBorder createTitledBorder(String title);
  29. static TitledBorder createTitledBorder(Border border);
  30. static TitledBorder createTitledBorder(Border border, String title);
  31. static TitledBorder createTitledBorder(Border border, String title, int titleJustification, int titlePosition);
  32. static TitledBorder createTitledBorder(Border border, String title, int titleJustification, int titlePosition, Font titleFont);
  33. static TitledBorder createTitledBorder(Border border, String title, int titleJustification, int titlePosition, Font titleFont, Color titleColor);

2.4 其他边框

  1. // 斜面边框
  2. static Border createBevelBorder(...);
  3. // 虚线边框
  4. static Border createDashedBorder(...);
  5. // “浮雕化”边框
  6. static Border createEtchedBorder(...);
  7. // 凹入斜面边缘的边框
  8. static Border createLoweredBevelBorder(...);
  9. // 具有凸出斜面边缘的边框
  10. static Border createRaisedBevelBorder(...);
  11. // 凸起软斜面
  12. static Border createRaisedSoftBevelBorder(...);
  13. // 合成边框
  14. static CompoundBorder createCompoundBorder(...);
  15. // 类似衬边的边框
  16. static MatteBorder createMatteBorder(...);
  17. // 共享斜面边框
  18. static Border createSharedBevel(...)
  19. // 软斜面边框
  20. static Border createSoftBevelBorder(...);
  21. // 画笔边框
  22. static Border createStrokeBorder(...);

3.代码实例

  1. import com.lijinjiang.beautyeye.BeautyEyeLNFHelper;
  2. import javax.swing.*;
  3. import javax.swing.border.Border;
  4. import javax.swing.border.TitledBorder;
  5. import java.awt.*;
  6. public class Demo01 {
  7. public static void main(String[] args) {
  8. try {
  9. BeautyEyeLNFHelper.frameBorderStyle = BeautyEyeLNFHelper.FrameBorderStyle.generalNoTranslucencyShadow;
  10. BeautyEyeLNFHelper.launchBeautyEyeLNF();
  11. } catch (Exception e) {
  12. e.printStackTrace();
  13. }
  14. JFrame frame = new JFrame("Demo01");
  15. JPanel contentPane = new JPanel();
  16. contentPane.setLayout(new GridLayout(2, 4, 25, 25));
  17. JPanel panel1 = new JPanel();
  18. panel1.setBorder(BorderFactory.createLineBorder(Color.RED, 3));
  19. panel1.add(new JLabel("线边框"));
  20. contentPane.add(panel1);
  21. JPanel panel2 = new JPanel();
  22. panel2.setBorder(BorderFactory.createEtchedBorder());
  23. panel2.add(new JLabel("刻蚀边框"));
  24. contentPane.add(panel2);
  25. JPanel panel3 = new JPanel();
  26. panel3.setBorder(BorderFactory.createRaisedBevelBorder());
  27. panel3.add(new JLabel("斜面边框(凸)"));
  28. contentPane.add(panel3);
  29. JPanel panel4 = new JPanel();
  30. panel4.setBorder(BorderFactory.createLoweredBevelBorder());
  31. panel4.add(new JLabel("斜面边框(凹)"));
  32. contentPane.add(panel4);
  33. JPanel panel5 = new JPanel();
  34. panel5.setBorder(BorderFactory.createTitledBorder("标题"));
  35. panel5.add(new JLabel("标题边框"));
  36. contentPane.add(panel5);
  37. JPanel panel6 = new JPanel();
  38. TitledBorder rightTitle = BorderFactory.createTitledBorder("标题");
  39. rightTitle.setTitleJustification(TitledBorder.RIGHT);
  40. panel6.setBorder(rightTitle);
  41. panel6.add(new JLabel("标题边框(右)"));
  42. contentPane.add(panel6);
  43. JPanel panel7 = new JPanel();
  44. panel7.setBorder(BorderFactory.createMatteBorder(2, 15, 2, 2, Color.ORANGE));
  45. panel7.add(new JLabel("花色边框"));
  46. contentPane.add(panel7);
  47. JPanel panel8 = new JPanel();
  48. Border border1 = BorderFactory.createLineBorder(Color.GREEN, 3);
  49. Border border2 = BorderFactory.createTitledBorder("标题");
  50. panel8.setBorder(BorderFactory.createCompoundBorder(border1, border2));
  51. panel8.add(new JLabel("组合边框"));
  52. contentPane.add(panel8);
  53. frame.setContentPane(contentPane);
  54. frame.setSize(760, 400);
  55. frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  56. frame.setLocationRelativeTo(null);
  57. frame.setVisible(true);
  58. }
  59. }

4.效果演示

在这里插入图片描述

发表评论

表情:
评论列表 (有 0 条评论,115人围观)

还没有评论,来说两句吧...

相关阅读

    相关 css3边框线border

    边框(border) 在网页中我们最常见的一种css3样式莫过于边框圆角了,边框圆角是的网页整体更加美观,我们当然想要我们的页面更加的美观,所以我们一起来看看这个属性。