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 中的操作?

java中将Label添加到GridLayout类型的JPanel里,label太靠左怎么往右调整到居中?如图

JPanel 中的 Java 自定义拖放

jpanel -java中的垂直居中jbutton

Java中的JPanel与JFrame