Adicionar componentes dentro de um Jpanel sem layout

4 respostas
Q

Gostaria de saber como faco para posionar um jlabel e um jtextfield dentro de um jpanel na posicao que eu quero

public Cadastro(){
        getContentPane().setBackground(new Color(188,230,150));
        setSize(600, 500);
        setLocation(340, 150);
        adicionarComponentes();
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

    }

    private void adicionarComponentes(){
        getContentPane().setLayout(null);        
        setResizable(false);
       // painel 
        JPanel painel = new JPanel();
        painel.setSize(595, 450);
        painel.SetLayout(null);
        // label e edit 
        JLabel lblCPF = new JLabel("CPF:");
        JTextField edCPF = new JTextField();
        // aqui gostaria de colocar o label e o painel onde eu quero 
        this.lblCPF.setLocation(100,100);   // exemplo
        this.edCPF.setLocation(200,200);  // exemplo
       this.getContentPane().add(painel); // carrego o painel sem problema onde eu quero com o tamanho que quero 
       // agora o problema na hr de acionar os componentes ao painel 
       painel.add(lblCPF);
       painel.add(edCPF);
       // nao consigo posicionar eles dentro do painel no local onde quero
    }

4 Respostas

N

Olá, quiano!
Vamos por partes :smiley:

Para criar um JPanel sem layout:

JPanel panel = new JPanel();
panel.setLayout(null);

Para adicionar componentes em um JPanel sem layout, você deve fazer uso do método setBounds. Este método tem quatro parâmetros: posição X, posição Y, comprimento, largura. Ou seja, você deve especificar, nos dois primeiros parâmetros, a localização do componente. Nos dois seguintes, você deve especificar o tamanho, da mesma maneira como feita com o JPanel:

JPanel panel = new JPanel();
panel.setLayout(null);

JLabel label = new JLabel("Digite um número:");
label.setFont(new Font("Tahoma", 0, 11));
label.setBounds(10, 10, 50, 20);

JTextField text = new JTextField(15);
text.setFont(new Font("Tahoma", 0, 11));
text.setBounds(100, 10, 100, 20);

panel.add(label);
panel.add(text);

getContentPane().add(panel);

E voilà!
Qualquer dúvida, poste aí!

Abraços!

I

Bom se voce sabe falar ingles , leia esse texto contido no link abaixo:
http://download.oracle.com/javase/tutorial/uiswing/layout/none.html
abracus
bons estudos

Q

ae agradeco ao pessoal ai do forum, funfou a parada aqui era exatamente isso q precisava

obrigado…

N

Coloque [RESOLVIDO] no seu tópico para dá-lo como encerrado, já que sua dúvida foi sanada!

Criado 11 de setembro de 2010
Ultima resposta 12 de set. de 2010
Respostas 4
Participantes 3