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

2022-09-02 03:20:26

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

它适用于没有边框的面板。但是,对于已经具有边框的面板,我该怎么做呢?(本例中为 A)TitledBorder

我试过了:

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);

(简而言之:向面板添加一个,该面板应具有 ,然后使用 创建另一个面板,并将第一个面板添加到该面板,然后使用该面板)EmptyBorderTitledBorderTitledBorder

但后来我得到了太大的填充,忽略了.EmptyBorder

那么,如何向具有图形边框的 JPanel 添加填充呢?


答案 1

你可以看看CompoundBorder

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

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

当然,你也可以使用BorderFactory#createCompoundBorder(border, margin)。<


答案 2

推荐