Centralizar um jLabel no jPanel

9 respostas
D

Gostaria de saber se é possível centralizar um texto que está num jLabel em um jPanel.

Gostaria que o texto ficasse bem no meio do espaço do Painel,
alguém tem como me falar se isso é possível?
Se sim, como…

Obrigado.

9 Respostas

R

Use o BorderLayout como layoutManager do JPanel e coloque o label no centro…

E

Primeiro centralize o teu JLabel em relação ao JPanel.
Depois centralize o texto do JLabel. Assim teu texto ficará bem no centro do JPanel.

D

Usei o layout e funcionou, obrigado!

D

Mais não consigo botar 2 jLabel…

Quer dizer até consigo, só que um dos jLabel fica muito pra cima, porque?
Eu não consigo abaixar a posição dele

G

não seria melhor pegar o tamanho do frame…

Dimension dimDoPainel= seuPainel.getSize(); int comprimento = dimdoPainel.getWidth(); int meioDoPainel =(int)( comprimento/2); seuLabel.setLocation(meioDoPainel-metadeDoTamanhoDoLabel, posicaoHeightQueVoceDeseja);

Esse é o alinhamento em relação a horizontal.

Para alinha-lo em relação a vertical faça um ‘int meioDoPainel’ usando a variável com o método: dimDoPainel.getHeight();

Espero ter ajudado.

G

vc deseja coloca-lo no meio da reta x e y do painel?

Se sim, aquilo que te mostrei pode te ajudar.

R

O BorderLayout é utilizado mais para, vamos dizer, “grandes” componente. O que vc pode fazer é fazer um JPanel com todos todos os seus labels, utilizando um GridBagLayout ou GroupLayout e adicionar esse novo panel criado no centro com o BorderLayout.

Não recomendo pegar o tamanho do frame, pois vc poder ter efeitos indesejáveis ao redimensionar seu panel e para manter seu texto no centro vai ter que mexer com WindowListener entre outras coisas.

D

Ja descobri uma maneira melhor, pelo menos funcionou…
Eu crio o painel e boto as jLabel dentro ai depois boto o layout de bordas…
Ai vai da a confusão de uma ir pra cima e tals ai simplesmete eu apago o layout e fica centralizado!

G

addComponentListener(new ComponentAdapter() { public void componentResized(ComponentEvent ce) { } });

É só colocar a atribuição da posição do label nesse evento que toda hora que vc redimensionar o panel, o label será encaminhado para o centro dele

Criado 9 de janeiro de 2009
Ultima resposta 10 de jan. de 2009
Respostas 9
Participantes 4