JFrame duvida simples

como faco pra minha tela quando eu abrir ela, ficar centralizada no meio e nao na ponta superior esquerda?

frame.setLocationRelativeTo(null);

Coloca isso no construtor do seu JFrame

setLocationRelativeTo(null);
Container tela = this.getContentPane();
tela.setLayout(null);
tela.setLocationRelativeTo(null); 

isso? se for nao deu certo a linha setLocationRelativeTo esta sublinhando com a seguinte message error => Cannot find simbol ;/

Cara tenta colocar dentro do seu construtor da sua classe de JFrame


this.setLocationRelativeTo(null);  

[quote]gilmas
ele compilo sem problemas com o this. so que ele nao esta abrindo a tela no meio ta abrindo pro lado ;/
[/quote]

Posta seu código

ta na mão

import java.awt.*;
import javax.swing.*;
public class loggin extends JFrame {
    //constructor
    TelaPrincipal telaprincipal;
    public loggin(){
        super("Sistema de Vendas Mickey ");

        Container tela = this.getContentPane();
    	this.setLayout(null);
        this.setLocationRelativeTo(null);
        //this.setState(JFrame.NORMAL);
        

        //JPanel
        JPanel painel1 = new JPanel();
        painel1.setBounds(0,0,300,250);
        painel1.setBackground(new Color(0,150,155));
        this.setResizable(false);
    	this.setDefaultCloseOperation(EXIT_ON_CLOSE);
    	this.setVisible(true);
    	this.setSize(270,250);
    } 	
    	public static void main(String[] args) {
        loggin tela = new loggin();
    }
    }

Definir o leiaute como null é uma péssima prática na programação com swing. Evite isso ao máximo! É mais vantajoso investir um tempinho aprendendo sobre gerenciadores de leiaute, do que horas (ou talvez dias…) tentando corrigir o leiaute de seu programa.

Outra coisa: você percebeu que resgatou o contentPane do JFrame e armazenou em uma variável, mas nunca usou essa referência? Elimine essa atribuição.

Convenções em Java: inicie o nome de sua classe com letra maiúscula: Loggin (não seria Login?).

Se você quer a janela seja exibida exatamente no centro da tela, primeiro faça todos os redimensionamentos necessários e depois use a linha de código:

this.setLocationRelativeTo(null);

Reveja esses detalhes e em caso de dúvida, estamos aqui!

opa…

V se ajuda, certa vez tive com problema com o “setLocationRelativeTo” usando polimorfismo, dai resolvi desta forma… Criando uma classe principal, e chamando atraves dela.

import java.awt.Dimension;
import java.awt.Toolkit;
import javax.swing.*;

public class Principal {

	public static void main(String[] args) throws ClassNotFoundException, InstantiationException, IllegalAccessException, UnsupportedLookAndFeelException {
		// Criando o Frame
		FrameMenu frame = new FrameMenu();
		frame.setTitle("Janela com exemplos de Menus e Barra de Ferramentas");
		
		// Definindo a ação da janela após fechá-la
		frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		
		// Definindo o tamanho do Frame
		final int LARGURA_FRAME = 500;
		final int ALTURA_FRAME = 300;
		frame.setSize(LARGURA_FRAME, ALTURA_FRAME);

		// Centralizando o Frame no meio da tela do computador
		Dimension tamanhoDaTela = Toolkit.getDefaultToolkit().getScreenSize();
		int largura = tamanhoDaTela.width; // pega a largura da tela do monitor
		int altura = tamanhoDaTela.height; // pega a altura da tela do monitor
		frame.setLocation((largura - LARGURA_FRAME) / 2,
				(altura - ALTURA_FRAME) / 2);

		// Visualizando o Frame
		frame.setVisible(true);
	}
}

[quote]marcosbiscaro2112
entao, a classe loggin esta escrita assim pq tenho 4 classes de loggin que estou estudando login loggin logggin e loggggin por isso ta escrito “errado”
e o metodo getContentPane eu uso sim mas so copiei e colei aqui as propriedades da pagina e esqueci de tirar esse metodo por isso a confusao, e sobre ñ usar layout livre vou dar uma olhada sobre isso muito obrigado pela atenção! qqr dúvida volto a postar
[/quote]

[quote] jaunus
de noite posto os resultados, obrigado pela atenção
[/quote]

Opa,

ken420 conseguisse resolver o problema de a tela aparecer deslocada?
Eu tive problemas semelhantes e descobri que isso ocorria porque eu redimensionava a janela depois de fazer o setLocation, no meu caso foi só mudar a chamada super.pack() para antes do setLocationRelativeTo(null).
Tenta mudar seu construtor de

 public loggin(){  
         super("Sistema de Vendas Mickey ");  
   
         Container tela = this.getContentPane();  
         this.setLayout(null);  
         this.setLocationRelativeTo(null);  //configura a localização ANTES de mudar o tamanho
         //this.setState(JFrame.NORMAL);  
           
   
         //JPanel  
         JPanel painel1 = new JPanel();  
         painel1.setBounds(0,0,300,250);  
         painel1.setBackground(new Color(0,150,155));  
         this.setResizable(false);  
         this.setDefaultCloseOperation(EXIT_ON_CLOSE);  
         this.setVisible(true);  
         this.setSize(270,250);  
     }

Para

 public loggin(){  
         super("Sistema de Vendas Mickey ");  
   
         Container tela = this.getContentPane();  
         this.setLayout(null);  
         //this.setState(JFrame.NORMAL);  
           
   
         //JPanel  
         JPanel painel1 = new JPanel();  
         painel1.setBounds(0,0,300,250);  
         painel1.setBackground(new Color(0,150,155));  
         this.setResizable(false);  
         this.setDefaultCloseOperation(EXIT_ON_CLOSE);  
         this.setVisible(true);  
         this.setSize(270,250);  
		 
		 this.setLocationRelativeTo(null);  // configura a localização da janela DEPOIS de mudar o tamanho
     }     

[quote]david
era isso mesmo vlw amigao!
[/quote]

Beleza, qualquer problema poste aí!