Как добавить горизонтальный зазор с помощью JLabel - PullRequest
6 голосов
/ 01 октября 2008

У меня есть JLabel (на самом деле это JXLabel).

Я положил на него значок и текст.

<icon><text>

Теперь я добавлю интервал на левой стороне компонента, например:

<space><icon><text>

Я НЕ ПРИНИМАЮ предложение переместить JLabel или добавить интервал, изменив изображение.

Я просто хочу знать, как это сделать с простым Java-кодом.

Ответы [ 4 ]

13 голосов
/ 01 октября 2008

Я нашел решение!

setBorder(new EmptyBorder(0,10,0,0));

Спасибо всем!

4 голосов
/ 01 октября 2008

Вот так: не очень понятно, но вы можете добавить интервал, добавив прозрачную границу определенной ширины к метке

2 голосов
/ 01 октября 2008

Если вы пытаетесь протолкнуть этикетку на одну сторону контейнера, вы можете добавить клей. Примерно так:

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

Хотя ваш вопрос не очень понятен.

1 голос
/ 01 октября 2008

Вам не нужно изменять предпочитаемый размер JLabel, вы можете использовать менеджер GridBagLayout , чтобы указать разделения между компонентами, вам нужно только использовать 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

...