Ajavax.swing.border.TitledBorder
在边框边缘引入了 2 个像素的间距。这很烦人,因为它破坏了与周围组件的对齐。
你如何删除这个间距?
我正在寻找一种适用于任何外观和感觉的解决方案。
Ajavax.swing.border.TitledBorder
在边框边缘引入了 2 个像素的间距。这很烦人,因为它破坏了与周围组件的对齐。
你如何删除这个间距?
我正在寻找一种适用于任何外观和感觉的解决方案。
不幸的是,这个边缘宽度在 TitledBorder 类中是硬编码的。所以你不能删除这个间距。
public class TitledBorder extends AbstractBorder
{
//...
// Space between the border and the component's edge
static protected final int EDGE_SPACING = 2;
}
但是您可以尝试扩展此类(覆盖方法“void paintBorder(Component, Graphics, int, int, int, int)”或者可能是“Insets getBorderInsets(Component, Insets)”)或从头开始实现自己的边框。
这不是您问题的真正答案,而是一个建议:如果您想保持组件之间的对齐,那么:
LayoutManager
确保正确对齐的 a (建议:DesignGridLayout
,但也有其他好的 LayoutManagers)JLabel
和水平的行JSeparator
(这是 Karsten Lentszch 的建议,来自 JGoodies 成名)