注:本文内容转自:Swing编程边框(Border)的用法总结。内容根据笔者理解稍有整理。

函数说明:

public void setBorder(Border border)

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

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

importjava.awt.Color;importjava.awt.Dimension;importjava.awt.GridLayout;import javax.swing.*;importjavax.swing.border.Border;importjavax.swing.border.TitledBorder;public classsetBorderDemo {public static voidmain(String[] args) {//TODO Auto-generated method stub

JPanel panel = newJPanel();

panel.setLayout(new GridLayout(0, 2, 5, 10));

panel.setBorder(BorderFactory.createEmptyBorder(5, 5, 5, 5));

JButton p1= newJButton();

p1.setBorder(BorderFactory.createLineBorder(Color.red,3));

p1.add(new JLabel("线边框"));

panel.add(p1);

JPanel p2= newJPanel();

p2.setBorder(BorderFactory.createEtchedBorder());

p2.add(new JLabel("蚀刻边框"));

panel.add(p2);

JPanel p3= newJPanel();

p3.setBorder(BorderFactory.createRaisedBevelBorder());

p3.add(new JLabel("斜面边框(凸)"));

panel.add(p3);

JPanel p4= newJPanel();

p4.setBorder(BorderFactory.createLoweredBevelBorder());

p4.add(new JLabel("斜面边框(凹)"));

panel.add(p4);

JPanel p5= newJPanel();

p5.setBorder(BorderFactory.createTitledBorder("标题"));

p5.add(new JLabel("标题边框"));

panel.add(p5);

JPanel p6= newJPanel();

TitledBorder tb= BorderFactory.createTitledBorder("标题");

tb.setTitleJustification(TitledBorder.RIGHT);

p6.setBorder(tb);

p6.add(new JLabel("标签边框(右)"));

panel.add(p6);

JPanel p7= newJPanel();

p7.setBorder(BorderFactory.createMatteBorder(1, 5, 1, 1, Color.yellow));

p7.add(new JLabel("花色边框"));

panel.add(p7);

JPanel p8= newJPanel();

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,它只占空间而不显示。

原文:http://www.cnblogs.com/pzy4447/p/4573140.html

java swing setborder_Swing-setBorder()用法-入门相关推荐

  1. java swing setborder_Swing编程边框(Border)的用法总结

    2. 下面列出程序的完整实现代码: Java示例: package Test; import java.awt.*; import javax.swing.*; import javax.swing. ...

  2. java buttongroup方框_「buttongroup」关于Java Swing ButtonGroup获取用法 - seo实验室

    buttongroup 简单事例代码: Jradiobuttonb1 = new JRadioButton("b1"); JRadioButtonb2 = new JRadioBu ...

  3. 关于Java Swing ButtonGroup获取用法

    简单事例代码: JRadioButtonb1 = new JRadioButton("b1"); JRadioButtonb2 = new JRadioButton("b ...

  4. Java Swing入门

    Java Swing相当于升级版本的AWT(Abstract Window Toolkit),是一组易于使用和理解的JavaBeans. 大多数的Swing应用都是建立在基础的JFrame的内部,JF ...

  5. Java Swing框架实战

    Java Swing框架介绍 Swing 是一个为Java设计的GUI工具包.(PC的一个UI库) Swing是JAVA基础类的一部分. Swing包括了图形用户界面(GUI)器件如:文本框,按钮,分 ...

  6. 基于Java Swing界面编程教学

    基于Java Swing界面编程 Swing是Java基础类的一部分,是一个为Java设计的GUI工具包. Swing包含了诸多图形用户界面(GUI)器件,提供了许多比awt更好的屏幕显示元素. 本教 ...

  7. 【java毕业设计】基于java+swing+Eclipse的俄罗斯方块游戏GUI设计与实现(毕业论文+程序源码)——俄罗斯方块游戏

    基于java+swing+Eclipse的俄罗斯方块游戏GUI设计与实现(毕业论文+程序源码) 大家好,今天给大家介绍基于java+swing+Eclipse的俄罗斯方块游戏GUI设计与实现,文章末尾 ...

  8. Java项目:潜艇大战项目(java+swing)

    源码获取:博客首页 "资源" 里下载! 功能简介: Java swing实现的一款小游戏潜艇大战的项目源码 游戏界面: @SuppressWarnings({ "unus ...

  9. 我应该避免在Java Swing中使用set(Preferred | Maximum | Minimum)Size方法吗?

    本文翻译自:Should I avoid the use of set(Preferred|Maximum|Minimum)Size methods in Java Swing? Several ti ...

  10. java swing实现计算器_Java swing实现的计算器功能完整实例

    本文实例讲述了Java swing实现的计算器功能.分享给大家供大家参考,具体如下: package awtDemo; import java.awt.*; import java.awt.event ...

最新文章

  1. Android 基于 Speex 的高度封装语音库,0 耦合,没三方jar包
  2. JavaScript服务器端开发基础之Math对象小结
  3. (原創) 如何將CMOS所擷取的影像傳到PC端? (SOC) (DE2) (TRDB-DC2)
  4. 【8】青龙面板系列教程之nolanjdc的一键安装获取cookie【作者删库了,不用尝试了】
  5. Linux常用命令大全(转载收藏)
  6. git rebase 的常见冲突及解决办法
  7. 简约好看的域名售卖页html源码
  8. 机器人视觉场景理解挑战赛
  9. WINDOWS7都谢幕了,微软为何不出个补丁包?
  10. jms与ActivityMQ中的简单使用
  11. 动态添加 data 属性的时候 发现某一个值无法取到
  12. 如何一次将蓝牙耳机连接到多个设备
  13. 电脑系统故障维修,系统C盘满了怎么办?教你c盘清理方法
  14. 1058: 素数判定
  15. iOS 在itunes connect创建App内购项目时遇到的坑
  16. 坐式养生八段锦口诀及练法图解
  17. CKEditor和CKFinder及CKEditor配置属性说明
  18. 软件直接爬取数据——以MOOC课程数据为例+现已公开的数据库(网盘分享)
  19. java中的applet的问题
  20. 利用MDK软件生成bin文件的简单方法

热门文章

  1. 机器人门窗共亨_机器人来了!门窗生产成本降低70%
  2. Dynamics 365: 详解插件的执行深度(PluginExecutionContext.Depth)
  3. 计算机ppt操作知识,职称计算机知识:Powerpoint幻灯片操作
  4. 【计算机视觉 | 目标检测】CORA: Adapting CLIP for Open-Vocabulary Detection with Region Prompting and Anchor
  5. B站韩顺平老师超全超详细的Java企业级学习路线图(后期整理每一小部分的学习内容)
  6. 【模拟登录】Pythoncookie17k
  7. 关于在python中如何使用pandas库读取excel表格后 删除含有空值的列
  8. openGauss全密态黑科技再升级,无感知加解密原理剖析
  9. 充满未来和科幻的界面设计FUI在国内还没有起步在国外早起相当成熟
  10. vivado:生成比特流报错-约束Bank电平冲突