Pergunta

Eu tenho um JLabel (na verdade, é uma JXLabel).

Eu tenho colocado um ícone e texto sobre ele.

<icon><text>

Agora eu varinha para adicionar algum espaço no lado esquerdo do componente, como este:

<space><icon><text>

EU NÃO aceitar a sugestão para mover o JLabel ou adicionar espaçamento ao modificar a imagem.

Eu só quero saber como fazê-lo com código java simples.

Foi útil?

Solução

Eu encontrei a solução!

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

Obrigado a todos!

Outras dicas

A assim: não é muito clara, mas você pode adicionar espaçamento, adicionando uma borda transparente de uma determinada largura para a etiqueta

Se você está tentando empurrar o rótulo para um dos lados do contêiner, você pode adicionar uma cola. Algo parecido com isto:

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

Apesar de sua pergunta não é muito clara.

Você não precisa modificar o PreferredSize do JLabel, você pode usar o GridBagLayout Manager para especificar separações entre os componentes, você só tem que usar o GridBagLayout no recipiente e adicione o JXLabel a ele com um GridBagConstraints objeto especificando as inserções para a esquerda:

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

Note que eu ter omitido um monte de propriedades de configuração na configuração das restrições, é melhor você ler o documentacion de GridBagLayout

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top