【发布时间】:2008-10-01 10:17:20
【问题描述】:
我有一个 JLabel(实际上是一个 JXLabel)。
我在上面放了一个图标和文字。
<icon><text>
现在我想在组件的左侧添加一些间距,如下所示:
<space><icon><text>
我不接受移动 JLabel 或通过修改图像添加间距的建议。
我只是想知道如何用纯 java 代码来做。
【问题讨论】:
我有一个 JLabel(实际上是一个 JXLabel)。
我在上面放了一个图标和文字。
<icon><text>
现在我想在组件的左侧添加一些间距,如下所示:
<space><icon><text>
我不接受移动 JLabel 或通过修改图像添加间距的建议。
我只是想知道如何用纯 java 代码来做。
【问题讨论】:
我找到了解决办法!
setBorder(new EmptyBorder(0,10,0,0));
谢谢大家!
【讨论】:
这样的:不是很清楚,但是可以通过给标签添加一定宽度的透明边框来增加间距
【讨论】:
如果您尝试将标签推到其容器的一侧,您可以添加胶水。像这样的:
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,你可以使用GridBagLayoutManager来指定组件之间的分隔,你只需要使用容器中的GridBagLayout,并用GridBagConstraints对象添加JXLabel到它上面指定左侧的插图:
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的文档
【讨论】: