P38 Border边框
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:边框。边框是对组件边界的装饰,例如为组件增加矩形有色边框,为透明的容器增加带标题的边框,增加组件的内边距,为组件增加浮雕化/凹凸斜面/阴影外观等,让组件看起来更美观。
组件边框的设置:
// 创建边框
Border border = BorderFactory.createXxxxBorder(...);
// 设置组件的边框
component.setBorder(border);
创建组件边框,使用 BorderFactory 工厂类中的静态方法窗口,支持许多各种不同形式的边框。
2.边框的创建
常用边框的创建(BorderFactory 中的静态方法)
2.1 空边框
// 创建一个不占用空间的空边控(边界宽度均为0)
static Border createEmptyBorder();
// 创建一个占用空间但不绘制的空边框,指定四条边占用的宽度(内边距效果)
static Border createEmptyBorder(int top, int left, int bottom, int right);
2.2 线边框
/**
* 参数说明:
* color: 线条颜色
* thickness: 线宽(默认为1px)
* rounded: 是否有圆角
*/
static Border createLineBorder(Color color);
static Border createLineBorder(Color color, int thickness);
static Border createLineBorder(Color color, int thickness, boolean rounded);
2.3 标题边框
/**
* 参数说明:
* border: 在此边框基础上添加标题,可以传 null
*
* title: 需要添加的标题
*
* titleJustification: 标题对齐方式,该值为一下之一:
* TitledBorder.LEFT
* TitledBorder.CENTER
* TitledBorder.RIGHT
* TitledBorder.LEADING
* TitledBorder.TRAILING
* TitledBorder.DEFAULT_JUSTIFICATION (leading)
*
* titlePosition: 标题显示的位置(相对于边框的纵向位置),该值为一下之一:
* TitledBorder.ABOVE_TOP
* TitledBorder.TOP(位于顶线上)
* TitledBorder.BELOW_TOP
* TitledBorder.ABOVE_BOTTOM
* TitledBorder.BOTTOM(位于底线上)
* TitledBorder.BELOW_BOTTOM
* TitledBorder.DEFAULT_POSITION(顶部)
*
* titleFont: 标题的字体
*
* titleColor: 标题的颜色
*/
static TitledBorder createTitledBorder(String title);
static TitledBorder createTitledBorder(Border border);
static TitledBorder createTitledBorder(Border border, String title);
static TitledBorder createTitledBorder(Border border, String title, int titleJustification, int titlePosition);
static TitledBorder createTitledBorder(Border border, String title, int titleJustification, int titlePosition, Font titleFont);
static TitledBorder createTitledBorder(Border border, String title, int titleJustification, int titlePosition, Font titleFont, Color titleColor);
2.4 其他边框
// 斜面边框
static Border createBevelBorder(...);
// 虚线边框
static Border createDashedBorder(...);
// “浮雕化”边框
static Border createEtchedBorder(...);
// 凹入斜面边缘的边框
static Border createLoweredBevelBorder(...);
// 具有凸出斜面边缘的边框
static Border createRaisedBevelBorder(...);
// 凸起软斜面
static Border createRaisedSoftBevelBorder(...);
// 合成边框
static CompoundBorder createCompoundBorder(...);
// 类似衬边的边框
static MatteBorder createMatteBorder(...);
// 共享斜面边框
static Border createSharedBevel(...)
// 软斜面边框
static Border createSoftBevelBorder(...);
// 画笔边框
static Border createStrokeBorder(...);
3.代码实例
import com.lijinjiang.beautyeye.BeautyEyeLNFHelper;
import javax.swing.*;
import javax.swing.border.Border;
import javax.swing.border.TitledBorder;
import java.awt.*;
public class Demo01 {
public static void main(String[] args) {
try {
BeautyEyeLNFHelper.frameBorderStyle = BeautyEyeLNFHelper.FrameBorderStyle.generalNoTranslucencyShadow;
BeautyEyeLNFHelper.launchBeautyEyeLNF();
} catch (Exception e) {
e.printStackTrace();
}
JFrame frame = new JFrame("Demo01");
JPanel contentPane = new JPanel();
contentPane.setLayout(new GridLayout(2, 4, 25, 25));
JPanel panel1 = new JPanel();
panel1.setBorder(BorderFactory.createLineBorder(Color.RED, 3));
panel1.add(new JLabel("线边框"));
contentPane.add(panel1);
JPanel panel2 = new JPanel();
panel2.setBorder(BorderFactory.createEtchedBorder());
panel2.add(new JLabel("刻蚀边框"));
contentPane.add(panel2);
JPanel panel3 = new JPanel();
panel3.setBorder(BorderFactory.createRaisedBevelBorder());
panel3.add(new JLabel("斜面边框(凸)"));
contentPane.add(panel3);
JPanel panel4 = new JPanel();
panel4.setBorder(BorderFactory.createLoweredBevelBorder());
panel4.add(new JLabel("斜面边框(凹)"));
contentPane.add(panel4);
JPanel panel5 = new JPanel();
panel5.setBorder(BorderFactory.createTitledBorder("标题"));
panel5.add(new JLabel("标题边框"));
contentPane.add(panel5);
JPanel panel6 = new JPanel();
TitledBorder rightTitle = BorderFactory.createTitledBorder("标题");
rightTitle.setTitleJustification(TitledBorder.RIGHT);
panel6.setBorder(rightTitle);
panel6.add(new JLabel("标题边框(右)"));
contentPane.add(panel6);
JPanel panel7 = new JPanel();
panel7.setBorder(BorderFactory.createMatteBorder(2, 15, 2, 2, Color.ORANGE));
panel7.add(new JLabel("花色边框"));
contentPane.add(panel7);
JPanel panel8 = new JPanel();
Border border1 = BorderFactory.createLineBorder(Color.GREEN, 3);
Border border2 = BorderFactory.createTitledBorder("标题");
panel8.setBorder(BorderFactory.createCompoundBorder(border1, border2));
panel8.add(new JLabel("组合边框"));
contentPane.add(panel8);
frame.setContentPane(contentPane);
frame.setSize(760, 400);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setLocationRelativeTo(null);
frame.setVisible(true);
}
}
还没有评论,来说两句吧...