我想添加填充到一些JPanel
s。我找到了这个答案:https://stackoverflow.com/a/5328475/1590323 https://stackoverflow.com/a/5328475/1590323
它对于没有边框的面板效果很好。但是对于已经有边框的面板我该怎么做呢? (ATitledBorder
在这种情况下)
I tried:
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);
(简而言之:添加一个EmptyBorder
到应该有一个面板TitledBorder
,然后用TitledBorder
并将第一个面板添加到其中,然后使用该面板)
但后来我得到了太大的填充,忽略了构造函数值EmptyBorder
.
So 如何向带有图形边框的 JPanel 添加填充?
你可以看一下CompoundBorder http://docs.oracle.com/javase/7/docs/api/javax/swing/border/CompoundBorder.html.
复合 Border 类,用于将两个 Border 对象组合成一个
通过在 insets 中嵌套内部 Border 对象来实现单个边框
外部 Border 对象。例如,此类可用于添加
具有现有装饰边框的组件的空白边距空间:
Border border = comp.getBorder();
Border margin = new EmptyBorder(10,10,10,10);
comp.setBorder(new CompoundBorder(border, margin));
当然,你也可以使用BorderFactory#createCompoundBorder(border, margin) http://docs.oracle.com/javase/7/docs/api/javax/swing/BorderFactory.html.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)