Java中的JPanel填充
Posted
技术标签:
【中文标题】Java中的JPanel填充【英文标题】:JPanel Padding in Java 【发布时间】:2011-07-16 18:01:13 【问题描述】:我的 Java swing 应用程序有一个格式问题。它应该相当简单,但我很难找到任何帮助(每个主题似乎都是关于 删除 JPanel 中的任何默认填充)。
我的各种 JPanel 中的文本拥抱侧面和顶部,触摸彩色边框:如何添加填充?
【问题讨论】:
【参考方案1】:在您的 JPanel
周围设置一个 EmptyBorder
。
示例:
JPanel p =new JPanel();
p.setBorder(new EmptyBorder(10, 10, 10, 10));
【讨论】:
或者您可以在现有边框周围添加一些额外的填充:p.setBorder(BorderFactory.createCompoundBorder(new EmptyBorder(10, 10, 10, 10), new EtchedBorder()));
调整窗口大小时会发生什么?那么这个解决方案不好是吗?
@Synox Legend 确实!请注意,您可以将 EmptyBorder 作为内部填充的最后一个参数【参考方案2】:
当您需要在 JPanel
内进行填充时,通常您使用正在使用的布局管理器添加填充。在某些情况下,您可以只扩展JPanel
的边框。
【讨论】:
向布局管理器添加内边距(在我的例子中,GridLayout)在相邻面板之间添加内边距,而不是在单个面板内。但是有边框就可以了,谢谢你的帮助。【参考方案3】:为了演示,我假设您的 JPanel 包含 JTextField。
这些组件提供了JTextComponent#setMargin()
方法,这似乎是您正在寻找的。p>
如果您要在文本周围寻找任意大小的空白边框,请使用EmptyBorder
【讨论】:
【参考方案4】:JPanel p=new JPanel();
GridBagLayout layout=new GridBagLayout();
p.setLayout(layout);
GridBagConstraints gbc = new GridBagConstraints();
gbc.fill=GridBagConstraints.HORIZONTAL;
gbc.gridx=0;
gbc.gridy=0;
p2.add("",gbc);
【讨论】:
以上是关于Java中的JPanel填充的主要内容,如果未能解决你的问题,请参考以下文章
带有 boxLayout 的 JScrollPane 中的 Java 可拖动 JPanel
如何从另一个子 JPanel(Java Swing)中的输入触发一个子 JPanel 中的操作?