javax.swing.border.TitledBorder
在边框边缘引入2个像素的间距。这非常令人讨厌,因为它会破坏与周围组件的对齐。
如何删除此间距?
我正在寻找适用于任何外观和感觉的解决方案。
答案 0 :(得分:6)
不幸的是,这个边缘宽度在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)”)或者实现你自己的边界划伤。
答案 1 :(得分:2)
这不是你问题的真正答案,而是一个建议:如果你想在组件之间保持对齐,那么:
LayoutManager
确保正确对齐(建议:DesignGridLayout
,但还有其他优秀的LayoutManagers)JLabel
和水平JSeparator
(这是来自Karsten Lentszch的建议,来自JGoodies成名)