【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

【Java】边框总结的更多相关文章

  1. Spark案例分析

    一.需求:计算网页访问量前三名 import org.apache.spark.rdd.RDD import org.apache.spark.{SparkConf, SparkContext} /* ...

  2. JAVA swing中JPanel如何实现分组框的效果以及设置边框颜色 分类: Java Game 2014-08-16 12:21 198人阅读 评论(0) 收藏

    代码如下: import java.awt.FlowLayout; import java.awt.Frame; import java.awt.GridLayout; import javax.sw ...

  3. java画按钮的边框

    import javax.swing.*;import java.awt.*;public class demo_4{    public static void main(String [] arg ...

  4. atitit.验证码识别step3----去除边框---- 图像处理类库 attilax总结java版本

    atitit.验证码识别step3----去除边框---- 图像处理类库 attilax总结java版本 1. 去除边框思路原理 1 2. Thumbnailator 是一个用来生成图像缩略图.裁切. ...

  5. 解决 GTK+/GNOME 3 环境下 Java Swing 程序使用本地 GTK+ 主题时菜单无边框 bug 的方法

    在 GTK+/GNOME 3 环境下采用默认的 Adwaita 主题时,Java Swing 程序如果使用本地 GTK+ 主题会出现菜单无边框的 bug,这个问题也可能在其他常用的 GTK+ 主题中出 ...

  6. Java 设置Word页边距、页面大小、页面方向、页面边框

    本文将通过Java示例介绍如何设置Word页边距(包括上.下.左.右).页面大小(可设置Letter/A3/A4/A5/A6/B4/B5/B6/Envelop DL/Half Letter/Lette ...

  7. java poi 合并单元格后边框问题

    在项目中用poi合并单元格,但发现边框会有不显示的问题. 在网上搜集了答案,来记录一下. 解决方法: 将每个没用到的单元格都设空值. 例如: HSSFCell cell = row.createCel ...

  8. 修复Java使用POI合并Excel单元格后,边框不显示的问题

    使用Apache POI生成Excel文档时,当进行单元格合并操作后,被合并的单元格边框会消失,使用如下方式可以解决. 创建方法: public void setBorderStyle(int bor ...

  9. Java Swing:JPanel添加边框

    一.JPanel添加不同边框的效果图如下所示 二. 不同边框样式的代码实现 JPanel jpanel = new JPanel(); jpanel.setBorder(BorderFactory.你 ...

随机推荐

  1. pyhanlp 文本聚类详细介绍

    文本聚类 文本聚类简单点的来说就是将文本视作一个样本,在其上面进行聚类操作.但是与我们机器学习中常用的聚类操作不同之处在于. 我们的聚类对象不是直接的文本本身,而是文本提取出来的特征.因此如何提取特征 ...

  2. Python入门 [输出,注释,列表,元祖,集合,字典,if,while,for]

    print("Hello Python") #输出 ''' 多行注释 用 三个引号 ''' a=1 #赋值 变量首字母只能书字母下划线 第二个字符数字,字母,下划线 声明一个列表 ...

  3. json server的简单使用(附:使用nodejs快速搭建本地服务器)

    作为前端开发人员,经常需要模拟后台数据,我们称之为mock.通常的方式为自己搭建一个服务器,返回我们想要的数据.json server 作为工具,因为它足够简单,写少量数据,即可使用. 安装 首先需要 ...

  4. window10 禁止更新

    win+R 运行 在服务里找到WindowsUpdate 双击  弹出的对话框 启动类型选禁用

  5. 【mysql】索引优化记录

    基础知识 Innodb存储引擎 支持行锁 支持事务: Myisam存储引擎 只支持表锁: 不支持事务: 常见索引列表 独立的列 前缀索引(索引选择性) 多列索引(并不是多个单列索引,索引顺序很重要) ...

  6. 【Mysql】MySQL高效获取记录总数SQL_CALC_FOUND_ROWS

    用法说明 分页程序一般由两条SQL组成: SELECT COUNT(*) FROM ... WHERE .... SELECT ... FROM ... WHERE LIMIT ... 如果使用SQL ...

  7. Java知识之运算符篇

    运算符 算术运算符:+.-.*./ 和 %,两个整数相除,结果还是整数. 赋值运算符:=.+=.-=.*=./=.%=.&=.|=.~=.^=.<<=.>>= . &g ...

  8. bzoj4941: [Ynoi2016]镜子里的昆虫

    维护每个位置x的上一个相等的位置pv[x],可以把询问表示成l<=x<=r,pv[x]<l的形式,对一次修改,均摊改变O(1)个pv的取值,因此可以用平衡树预处理出pv的变化,用cd ...

  9. C#使用MapReduce实现对分片数据的分组

    事由:mongodb已经进行数据分片,这样就不能使用一些方法就不能使用,例如eval,$group如果尝试使用mongodb会提示 Error: { , "errmsg" : &q ...

  10. document.write的用处!

    document.write是JavaScript中对document.open所开启的文档流(document stream操作的API方法,它能够直接在文档流中写入字符串,一旦文档流已经关闭,那d ...