[Resolvido]centralizar jLabel em JPanel

2 respostas
yfalbino

olá pessoal,
tenho um jLabel inserido dentro de um jPanel, e estou tentando centralizar o jLabel no jPanel, tentei ester dois codigos:

Dimension Painel = PainelInicio.getSize();
int comprimento = (int) Painel.getWidth();
int altura = (int) Painel.getHeight();
int meioPainelC = (int) (comprimento / 2);
int meioPainelA = (int) (altura / 2);
        
lblLogo.setLocation(meioPainelC, meioPainelA);
int comprimentoPai = (int) Painel.getWidth();
int alturaPai = (int) Painel.getHeight();
int comprimentoFilho = (int) lblLogo.getWidth();
int alturaFilho = (int) lblLogo.getHeight();
        
int novoX = (comprimentoPai - comprimentoFilho)/2;
int novoY = (alturaPai - alturaFilho)/2;
        
lblLogo.setLocation(novoX,novoY);

mas nenhum deles deu certo :(
alguem sabe dizer o porque ?

2 Respostas

U

yfalbino vi uma solução bacana, que seria:

panel = new JPanel();
		panel.setBounds(0, 0, 500, 500);
		panel.setBackground(Color.cyan);
		
		panel.setLayout(null);

lab1 = new JLabel("Urbanno");
		lab1.setBounds(0,0, 50, 10);
		lab1.setBounds(((panel.getWidth()+panel.getX())/2)-lab1.getWidth()/2,((panel.getHeight()+panel.getY())/2)-lab1.getHeight()/2, 50, 10);

o label deve ser setado duas vezes!

A fim de entender o cálculo: Vc de setar o label(x,y) de acordo com o tamanho do panel e de sua localização, somando a posição(x,y) do panel com o seu tamanho(Width,Height) e o dividindo por 2, e subtrair a metade do tamanho do label.

yfalbino

funcionou perfeitamente, obrigado

so que so funciona se setar o layout pra null, se deixar o layout em desenho livre ele nao muda a posição da label

Criado 8 de março de 2013
Ultima resposta 8 de mar. de 2013
Respostas 2
Participantes 2