Posição dos componentes na JFrame

Aparentemente é algo bem besta, mas eu desisto de tentar resolver esse problema sozinha.
Eu estou criando a tela de perfil de um usuario no projeto, mas na hora de posicionar a foto ela esta ficando la em baixo, enquanto meu codigo para a posiçao da foto esta assim:
“icon.setLocation(0,0);”

segue o codigo a baixo:

package br.com.etec.chatetec.view;

import java.awt.Color;
import java.awt.Font;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;

import javax.swing.ImageIcon;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;

public class PerfilTela extends JFrame implements
ActionListener, MouseListener, KeyListener{

public JLabel lb_nome, lb_login, lb_senha, icon;
public JLabel nome, login, senha;
public String user_imagem = "";
public static String foto;

public PerfilTela (String imagem) {
	user_imagem = imagem;
	setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
	setSize(400, 500);
	setLocationRelativeTo(this);
	init();
}

public void init() {
	
	//JLabel 'nome'
	Font fonte = new Font ("Arial", 0, 20);
	nome = new JLabel ("Nome:");
	nome.setFont(fonte);
	nome.setForeground(Color.gray);
	nome.setSize(150, 150);
	nome.setLocation(50, 200);
	add(nome);
	
	//JLabel 'E-mail'
	login = new JLabel ("E-mail:");
	login.setFont(fonte);
	login.setForeground(Color.gray);
	login.setSize(150, 150);
	login.setLocation(50, 230);
	add(login);
	
	//JLabel 'Senha'
	senha = new JLabel ("Senha:");
	senha.setFont(fonte);
	senha.setForeground(Color.gray);
	senha.setSize(150, 150);
	senha.setLocation(50, 280);
	add(senha);
	
	//JLabel para a foto do usuario
	ImageIcon icone = new ImageIcon(user_imagem);
	icone.setImage(icone.getImage().getScaledInstance(120,120, 50));
	icon = new JLabel(icone); 
	icon.setSize(200, 200);
	icon.setLocation(0, 0);
	icon.setLayout(null);
	add(icon);
	
}


@Override
public void keyPressed(KeyEvent arg0) {
	// TODO Auto-generated method stub
	
}

@Override
public void keyReleased(KeyEvent arg0) {
	// TODO Auto-generated method stub
	
}

@Override
public void keyTyped(KeyEvent arg0) {
	// TODO Auto-generated method stub
	
}

@Override
public void mouseClicked(MouseEvent arg0) {
	// TODO Auto-generated method stub
	
}

@Override
public void mouseEntered(MouseEvent arg0) {
	// TODO Auto-generated method stub
	
}

@Override
public void mouseExited(MouseEvent arg0) {
	// TODO Auto-generated method stub
	
}

@Override
public void mousePressed(MouseEvent arg0) {
	// TODO Auto-generated method stub
	
}

@Override
public void mouseReleased(MouseEvent arg0) {
	// TODO Auto-generated method stub
	
}

@Override
public void actionPerformed(ActionEvent arg0) {
	// TODO Auto-generated method stub
	
}

}
Sem%20t%C3%ADtulo0

Aparentemente, você não está definindo qual o layout da tela (JFrame), o que pode interferir com a posição dos elementos quando você tenta posicioná-los em coordenadas fixas. Dê uma olhada nos layout managers ou defina o layout como nulo e use setBounds para definir uma posição fixa para cada elemento.

Abraço.

1 curtida