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í!