当前位置:首页 > Windows程序 > 正文

setBorder()用法

2021-05-25 Windows程序

public void setBorder(Border border)

设置此组件的边框。Border 对象负责定义组件的 insets(直接对组件重写所有 insets 设置),并且可选地呈现这些 insets 范围内的边框装饰。要为 swing 组件创建有装饰的和无装饰的区域(例如边距和填充),应该使用边框(而不是 insets)。在单个组件中可使用复合边框来嵌套多个边框。 虽然从技术上讲可以在继承自 JComponent 的所有对象上设置边框,,但是很多标准 Swing 组件的外观实现无法正常地使用用户设置的边框。通常,如果希望在标准的 Swing 组件而不是 JPanel 或 JLabel 上设置边框时,建议将组件放入 JPanel 中,并在 JPanel 上设置边框。

Border对象的定义主要通过BorderFactory进行,这也是本文讨论的重点,根据API的解释:BorderFactory提供标准Border对象的工厂类。在任何可能的地方,此工厂类都将提供对已共享Border实例的引用。下面讨论具体的应用方法:

import java.awt.Color; import java.awt.Dimension; import java.awt.GridLayout; import javax.swing.*; import javax.swing.border.Border; import javax.swing.border.TitledBorder; public class setBorderDemo { public static void main(String[] args) { // TODO Auto-generated method stub JPanel panel = new JPanel(); panel.setLayout(new GridLayout(0, 2, 5, 10)); panel.setBorder(BorderFactory.createEmptyBorder(5, 5, 5, 5)); JButton p1 = new JButton(); p1.setBorder(BorderFactory.createLineBorder(Color.red, 3)); p1.add(new JLabel("线边框")); panel.add(p1); JPanel p2 = new JPanel(); p2.setBorder(BorderFactory.createEtchedBorder()); p2.add(new JLabel("蚀刻边框")); panel.add(p2); JPanel p3 = new JPanel(); p3.setBorder(BorderFactory.createRaisedBevelBorder()); p3.add(new JLabel("斜面边框(凸)")); panel.add(p3); JPanel p4 = new JPanel(); p4.setBorder(BorderFactory.createLoweredBevelBorder()); p4.add(new JLabel("斜面边框(凹)")); panel.add(p4); JPanel p5 = new JPanel(); p5.setBorder(BorderFactory.createTitledBorder("标题")); p5.add(new JLabel("标题边框")); panel.add(p5); JPanel p6 = new JPanel(); TitledBorder tb = BorderFactory.createTitledBorder("标题"); tb.setTitleJustification(TitledBorder.RIGHT); p6.setBorder(tb); p6.add(new JLabel("标签边框(右)")); panel.add(p6); JPanel p7 = new JPanel(); p7.setBorder(BorderFactory.createMatteBorder(1, 5, 1, 1, Color.yellow)); p7.add(new JLabel("花色边框")); panel.add(p7); JPanel p8 = new JPanel(); Border b1 = BorderFactory.createLineBorder(Color.blue, 2); Border b2 = BorderFactory.createEtchedBorder(); p8.setBorder(BorderFactory.createCompoundBorder(b1, b2)); p8.add(new JLabel("组合边框")); panel.add(p8); JFrame frame = new JFrame("Swing边框演示"); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.getContentPane().add(panel); frame.pack(); frame.setVisible(true); } }

运行效果如下图所示:

技术分享

运行效果图

需注意的是,panel与frame之间其实是有一个宽度为5像素的emptyBorder,它只占空间而不显示。

Swing-setBorder()用法-入门

温馨提示: 本文由Jm博客推荐,转载请保留链接: https://www.jmwww.net/file/70965.html