如何使用JLabel添加水平间隙
时间:2020-03-06 14:58:12 来源:igfitidea点击:
我有一个JLabel(实际上是JXLabel)。
我已经在上面放了一个图标和文字。
<图标> <文本>
现在,我要在组件的左侧添加一些间距,如下所示:
<空格> <图标> <文本>
我不接受通过修改图像来移动JLabel或者增加间距的建议。
我只想知道如何使用简单的Java代码执行此操作。
解决方案
像这样:不是很清楚,但是我们可以通过在标签上添加一定宽度的透明边框来增加间距
如果我们试图将标签推到容器的一侧,则可以添加胶水。像这样的东西:
JPanel panel = new JPanel(); panel.setLayoutManager(new BoxLayout(panel, BoxLayout.LINE_AXIS); panel.add(new JLabel("this is your label with it's image and text")); panel.add(Box.createHorizontalGlue());
虽然问题不是很清楚。
我们不需要修改JLabel的preferredSize,可以使用GridBagLayout Manager来指定组件之间的分隔,只需要使用容器中的GridBagLayout并将JXLabel与GridBagConstraints对象一起添加到它,即可在左侧指定插入:
JPanel panel=new JPanel(new GridBagLayout()); JLabel label=new JLabel("xxxxx"); GridBagConstraints constraints=new GridBagConstraints(); constraints.insest.left=X; // X= number of pixels of separation from the left component panel.add(label,constraints);
请注意,我在约束的设置中省略了许多配置属性,我们最好阅读GridBagLayout的文档
我找到了解决方案!
setBorder(new EmptyBorder(0,10,0,0));
谢谢大家!