zoukankan      html  css  js  c++  java
  • 【Java】边框总结

    【Java】边框总结

    1 例子代码与结果

    package xjtu.vf.swing;
    
    import java.awt.BorderLayout;
    import java.awt.Color;
    import java.awt.GridLayout;
    
    import javax.swing.*;
    import javax.swing.border.*;
    
    public class Borders extends JFrame {
        static JPanel showBorder(Border b) {
            JPanel jp = new JPanel();
            jp.setLayout(new BorderLayout());
            String mm = b.getClass().toString();
            mm = mm.substring(mm.lastIndexOf('.') + 1);
            jp.add(new JLabel(mm, JLabel.CENTER), BorderLayout.CENTER);
            jp.setBorder(b);
            return jp;
        }
    
        public Borders() {
            setLayout(new GridLayout(2, 4));
            add(showBorder(new TitledBorder("Title")));
            add(showBorder(new EtchedBorder()));
            add(showBorder(new LineBorder(Color.blue)));
            add(showBorder(new MatteBorder(5, 5, 30, 30, Color.GREEN)));
            add(showBorder(new BevelBorder(BevelBorder.RAISED)));
            add(showBorder(new SoftBevelBorder(BevelBorder.LOWERED)));
            add(showBorder(new CompoundBorder(new EtchedBorder(), new LineBorder(
                    Color.RED))));
        }
    
        public static void main(String[] args) {
            SwingConsole.run(new Borders(), 500, 300);
        }
    }
    

    2 javax.swing.border

    AbstractBorder所有边框类的父类

    3 BorderFactory

    使用工厂设计模式快速设计边框,隐藏创建细节。

    4 LineBorder

    LineBorder是围绕组件周围用户义定宽度的单色行边框。他可以具有方角或是圆角。
    LineBorder有三个构造函数,两个工厂方法以及两个BorderFactory工厂方法

    public LineBorder(Color color)
    Border lineBorder = new LineBorder (Color.RED);
     
    public LineBorder(Color color, int thickness)
    Border lineBorder = new LineBorder (Color.RED, 5);
     
    public LineBorder (Color color, int thickness, boolean roundedCorners)
    Border lineBorder = new LineBorder (Color.RED, 5, true);
     
    public static Border createBlackLineBorder()
    Border blackLine = LineBorder.createBlackLineBorder();
     
    public static Border createGrayLineBorder()
    Border grayLine = LineBorder.createGrayLineBorder();
     
    public static Border createLineBorder(Color color)
    Border lineBorder = BorderFactory.createLineBorder(Color.RED);
     
    public static Border createLineBorder(Color color, int thickness)
    Border lineBorder = BorderFactory.createLineBorder(Color.RED, 5);
    

    5 MatteBorder

    如果我们希望修改不同边的粗细,我们需要使用MatteBorder,

    MatteBorder(Icon tileIcon)      
    Creates a matte border with the specified tile icon.
    MatteBorder(Insets borderInsets, Color matteColor)
    Creates a matte border with the specified insets and color.
    MatteBorder(Insets borderInsets, Icon tileIcon)
    Creates a matte border with the specified insets and tile icon.
    MatteBorder(int top, int left, int bottom, int right, Color matteColor)
    Creates a matte border with the specified insets and color.
    MatteBorder(int top, int left, int bottom, int right, Icon tileIcon)
    Creates a matte border with the specified insets and tile icon.
    

    6 TitleBorder

    7 BevelBorder

    BevelBorder以三维外观绘制边框,其可以表现为升起或是降低。当边框升起时,在边框的底部与右边会出现阴影效果。当降低时,阴影的位置会相反。
    BevelBorder有三个构造函数以及一个工厂方法,同时还有BorderFactory创建BevelBorder对象的五个工厂方法:

    public BevelBorder(int bevelType)
    Border bevelBorder = new BevelBorder(BevelBorder.RAISED);
     
    public BevelBorder(int bevelType, Color highlight, Color shadow)
    Border bevelBorder = new BevelBorder(BevelBorder.RAISED, Color.PINK, Color.RED);
    
    public BevelBorder(int bevelType, Color highlightOuter, Color highlightInner,
      Color shadowOuter, Color shadowInner)
    Border bevelBorder = new BevelBorder(BevelBorder.RAISED, Color.PINK,
      Color.PINK.brighter(), Color.RED, Color.RED.darker());
    
    public static Border createBevelBorder(int bevelType)
    Border bevelBorder = BorderFactory.createBevelBorder(BevelBorder.RAISED);
     
    public static Border createLoweredBevelBorder()
    Border bevelBorder = BorderFactory.createLoweredBevelBorder();
     
    public static Border createRaisedBevelBorder()
    Border bevelBorder = BorderFactory.createRaisedBevelBorder();
     
    public static Border createBevelBorder(int bevelType, Color highlight, Color shadow)
    Border bevelBorder = BorderFactory.createBevelBorder(BevelBorder.RAISED,
      Color.PINK, Color.RED);
     
    public static Border createBevelBorder(int bevelType, Color highlightOuter,
      Color highlightInner, Color shadowOuter, Color shadowInner)
    Border bevelBorder = BorderFactory.createBevelBorder(BevelBorder.RAISED,
      Color.PINK, Color.PINK.brighter(), Color.RED, Color.RED.darker());
    

    8 SoftBevelBorder

    oftBevelBorder是BevelBorder的近亲。这个组件会包围四角,所以他们的边并不尖利。
    而他使用下边与右边的相应外边颜色只绘制一条线。
    SoftBevelBorder有三个构造函数:

    public SoftBevelBorder(int bevelType)
    Border softBevelBorder = new SoftBevelBorder(SoftBevelBorder.RAISED);
    
    public SoftBevelBorder(int bevelType, Color highlight, Color shadow)
    Border softBevelBorder = new SoftBevelBorder(SoftBevelBorder.RAISED, Color.RED,
      Color.PINK);
    
    SoftBevelBorder(int bevelType, Color highlightOuterColor, Color highlightInnerColor, Color shadowOuterColor, Color shadowInnerColor)
    

    9 EtchedBorder

    建立一个四周有凹痕的边界,也可以指定突边与阴影的颜色.

    10 CompoundBorder

    建立一个复合边界,并可以指定它的内外边界

    Author: visaya fan <visayafan[AT]gmail.com>

    Date: 2011-11-20 22:02:11

    HTML generated by org-mode 6.33x in emacs 23

  • 相关阅读:
    微信端调取相册和摄像头,实现图片上传,并上传到本地服务器
    js 跳转链接的几种方式
    JS 导出表格
    This problem will occur when running in 64 bit mode with the 32 bit Oracle client components installed
    错误: 未能完成程序集的安装(hr = 0x8007000b)。探测终止。
    sql server ISNULL失效
    JS 实现加载中转圈效果
    .net core 分页控件X.PagedList.Mvc.Core
    JS 将table内未显示完全内容显示完全
    .net core viewbag 传递list 或 model
  • 原文地址:https://www.cnblogs.com/guanxinjing/p/9708664.html
Copyright © 2011-2022 走看看