如何向带有边框的 JPanel 添加填充

2024-01-19

我想添加填充到一些JPanels。我找到了这个答案:https://stackoverflow.com/a/5328475/1590323 https://stackoverflow.com/a/5328475/1590323

它对于没有边框的面板效果很好。但是对于已经有边框的面板我该怎么做呢? (ATitledBorder在这种情况下)

I tried:

JPanel mypanel = new MyPanel(); // Panel that I am going to add a TitledBorder to, but needs padding
mypanel.setBorder(new EmptyBorder(10,10,10,10));
JPanel mypanel_container = new JPanel();
TitledBorder border = BorderFactory.createTitledBorder(BorderFactory.createRaisedBevelBorder(), "My panel");
border.setTitleJustification(TitledBorder.LEADING);
mypanel_container.setBorder(border);
mypanel_container.add(mypanel);
this.add(mypanel_container);

(简而言之:添加一个EmptyBorder到应该有一个面板TitledBorder,然后用TitledBorder并将第一个面板添加到其中,然后使用该面板)

但后来我得到了太大的填充,忽略了构造函数值EmptyBorder.

So 如何向带有图形边框的 JPanel 添加填充?


你可以看一下CompoundBorder http://docs.oracle.com/javase/7/docs/api/javax/swing/border/CompoundBorder.html.

复合 Border 类,用于将两个 Border 对象组合成一个 通过在 insets 中嵌套内部 Border 对象来实现单个边框 外部 Border 对象。例如,此类可用于添加 具有现有装饰边框的组件的空白边距空间:

Border border = comp.getBorder();
Border margin = new EmptyBorder(10,10,10,10);
comp.setBorder(new CompoundBorder(border, margin));

当然,你也可以使用BorderFactory#createCompoundBorder(border, margin) http://docs.oracle.com/javase/7/docs/api/javax/swing/BorderFactory.html.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何向带有边框的 JPanel 添加填充 的相关文章

随机推荐

  • 如何在.NET Framework 3.5上使用Stream.CopyTo?

    我找到了上传代码 该代码包含Stream CopyTo method Example file Stream CopyTo requestStream NET Framework 4 0 如何将 file Stream 复制到 reques
  • 比较 list 类型的 Python 字典值,看看它们是否按顺序匹配

    prefs s1 a b c d e s2 c d e a b s3 a b c d e s4 c d e b e 我有一本字典 我想比较每个键的值 类型 列表 以查看它们是否按该顺序存在 因此 本质上我试图迭代每个键值对 并将列表类型的值
  • 在 Android 中从 Facebook 检索用户名和性别

    这就是我检索存储在共享首选项中的信息 然后比较用户名和密码是否存在的方法 如果用户登录 我可以显示另一个活动 SharedPreferences 设置 getSharedPreferences logindetails 0 String u
  • Java 中的悬空线程

    Java 中的悬空线程会发生什么 就像我创建一个应用程序并且它生成多个线程一样 其中一个线程未完成 主程序在此之前完成 这条悬空的线会发生什么 它会无限地留在线程池中还是 JVM 将在阈值时间段后杀死线程 这取决于线程是否被标记为 守护进程
  • 在 char 中分配多个字符

    为什么这个程序给出输出 y include
  • 如何对结构体数组进行排序

    如何按项目名称的字母顺序对 oo 结构数组进行排序 oo struct Item Quill Ink Pen Pencil Cost 10 2 1 我尝试使用 sort 函数但它不起作用 谢谢 首先索引您的字段 在本例中oo Items它返
  • jQuery 泄漏问题已解决,但为什么呢?

    我正在开发一个包含大量 JavaScript 的大型企业应用程序 够了 我不可能遍历并修复过去 5 年开发中创建的所有小循环引用 在研究解决方案时 我遇到了这个小的 jQuery 黑客 补丁 http kossovsky net index
  • Java邮件超时和连接超时处理

    我正在使用 JavaMail 将电子邮件请求发送到 SMTP 服务器 我想同时设置 邮件 smtp 连接超时 and 邮件 smtp 超时 我的代码中的属性 以编程方式 我想在以下情况下捕获两者timeout and or 连接超时Java
  • 获取过时的 Composer 软件包列表

    我想获取过时的软件包列表 这些软件包将在我发布时更新composer update 作曲家有这样的功能吗 如果没有 有没有办法做到这一点 有或没有作曲家 Update Since Composer v1 1 2016 年 5 月 https
  • Django - postgres:如何在 JsonB 字段上创建索引

    我想允许在 ID 上的 JsonB 字段上建立索引 该 ID 深入到我们 Django 项目中的 json 数据的几个级别 JSONB 数据如下所示 foreign data some key val src data VEHICLE ti
  • 以编程方式卸载/删除 Firefox 扩展?

    有没有办法以编程方式卸载 Firefox 扩展 如果是 是否可以从其他扩展执行此脚本 使用以下方式获取附加组件的参考AddonManager getAddonByID https developer mozilla org en US Ad
  • 安装 RMySQL 时出错

    在我的 Linux 机器上安装 RMySQL 花了很长时间 但在更改环境变量并复制并粘贴 lib dll 文件后我能够安装它 然而 我现在正在尝试在我的64位window机器上安装RMySQL 但到目前为止两天还没有任何进展 运行命令 后它
  • Angular 6 材质:mat-tab-link 通过下划线选择

    我有一个mat tab nav bar我的网站的导航栏 但是mat tab link蓝色下划线条不会追随活动按钮 它只是停留在第一个按钮上 不会移动 尽管背景颜色发生变化 但按钮确实会变成活动状态 并且它们可以很好地路由到相应的页面 这是a
  • 如何根据子视图的高度设置父视图的高度

    我想写一个定制的家长View其中包括其中之一Text组件子视图或两个Text组件子视图 有没有办法设置父级View的高度基于Text视图的高度 class ParentView extends Component constructor p
  • 如何使用cargo部署特定的子项目:start using maven

    我有一个开发的应用程序 我只是想让构建过程变得简单 父级的 POM 文件如下所示
  • javax.mail.MessagingException:无法连接到 SMTP 主机:smtp.gmail.com,端口:25;

    我用来发送简单邮件的代码 import javax mail import javax mail internet import java util import java io import javax activation DataHa
  • 简单正则表达式的困难(匹配前缀/后缀)

    我正在尝试开发一个将在 C 程序中使用的正则表达式 我最初的正则表达式是 lt w 它成功匹配 foo 匹配但从输出中排除左括号和右括号 以生成简单的 foo 但是 如果我将正则表达式修改为 lt w 我尝试与 foo 匹配 但它无法匹配
  • 具有 malloc 和 free 的共享指针

    我在包含 c 和 cpp 的大型应用程序中工作 所有文件都保存为 cpp 扩展名 但代码是用 c 风格编写的 我的意思是它是定义结构而不是类通过 malloc 和 realloc 和 calloc 分配内存 最近他们安装了 boost 库所
  • 为什么这个 Lucene 查询是“contains”而不是“startsWith”?

    string q m Query query new QueryParser company new StandardAnalyzer Parse q 将导致查询成为 prefixQuery company a 尽管如此 我仍然会得到像 非
  • 如何向带有边框的 JPanel 添加填充

    我想添加填充到一些JPanels 我找到了这个答案 https stackoverflow com a 5328475 1590323 https stackoverflow com a 5328475 1590323 它对于没有边框的面板