使用 BorderFactory 创建边框
要向组件或容器添加边框,可以使用 java BorderFactory 提供了多种类型的 Swing 边框。创建边框的三个步骤是:- 通过实例化 Border.
- 使用 BorderFactory 选择边框样式。().
- 使用 setBorder.
LineBorder
此方法修改 JComponent(组件) BorderFactory.createLineBorder(Color, int) 创建单个边框。第一个参数表示颜色,第二个参数表示 line.以下代码在 JLabel 和 JPanel.
import java.awt.BorderLayout;输出
导入 java.awt.Color;
导入 java.awt.Dimension;
import javax.swing.BorderFactory;
导入 javax.swing.JFrame;
导入 javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.border.Border;
public class BorderFactoryExample extends JPanel{
public BorderFactoryExample(){
JFrame f = new JFrame(BorderFactoryExample”);
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
f.setVisible(true);
JPanel 面板 = new JPanel();
JLabel label = new JLabel(lineBorder”);
label.setPreferredSize(new Dimension(100, 100));
panel.add(label);
panel.setPreferredSize(new Dimension(200,125));
//创建黑线边框和最小宽度 1
边框 lineborder = BorderFactory.createLineBorder(Color.black, 1);
//与 JLabel
label.setBorder(lineborder) 相关联;
f.getContentPane().setLayout(new BorderLayout());
f.add(new JLabel( ”), BorderLayout.NORTH);
//调整到 center
f.add(panel, BorderLayout.CENTER);
f.pack();
}
public static void main(String[] args) {
new BorderFactoryExample();
}
}
EtchedBorder
Etched 表示用法语雕刻,从外部:EtchedBorder.RAISED,或从内部:EtchedBorder.LOWERED.RAISED
Border EtchedBorderLowered = BorderFactory.createEtchedBorder(EtchedBorder.LOWERED);
RaisedBevelBorder
创建边框作为松散按钮,阴影具有浅色阴影和深色阴影。
创建边框作为按下的按钮,阴影具有浅色和深色阴影。
Border LoweredBevelBorder = BorderFactory.createLoweredBevelBorder();
创建一个有 5 个参数的边框,前 4 个处理左、右、顶、底线的宽度, 最后一个给边缘着色.
Border matteborder = BorderFactory.createMatteBorder(1, 1, 3, 1, Color.blue);
您还可以通过添加一个在边框周围重新设计的图标来使其更漂亮:
ImageIcon icon icon = new ImageIcon(etoile.png”);
Border matteborder = BorderFactory.createMatteBorder(1, 1, 3, 1, 图标);
TitledBorder
TitledBorder 有五个构造函数,我们选择使用一个包含所有参数的示例,这些参数允许您将标题添加到具有特定边框样式的边框, position, font and color.
Border LoweredBevelBorder = BorderFactory.createLoweredBevelBorder();
Border EtchedBorderRaised = BorderFactory.createTitledBorder(LoweredBevelBorder, title”,
TitledBorder.LEFT,TitledBorder.TOP,
new Font(Arial”, Font.PLAIN , 13), Color.black);
EtchedBorder
此样式将两种样式合二为一。例如,我们想在 RaisedBevelBorder:
Border lineborder = BorderFactory.createLoweredBevelBorder() 中绘制一个 LineBorder;
Border RaisedBevelBorder = BorderFactory.createLineBorder(Color.blue);
Border EtchedBorderRaised = BorderFactory.createCompoundBorder(lineborder,
RaisedBevelBorder);
Oracle 文档:BorderFactory