Galera desenvolvi uma aplicação, mas a mesma sempre a abre na parte superior da tela, obs foi montada no NetBeans, qual a propriedade eu mudo para tal configuração ou onde coloco o código para funcionar?
Resolvido:
public Cartao() {
initComponents();
setLocationRelativeTo(null);
para saber o tamanho da tela e centralizar um frame,
import java.awt.*;
import javax.swing.*;
public class CentrarTeste {
public static void main(String[] args) {
CentrarFrame frame = new CentrarFrame();
frame.setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE );
frame.setVisible( true );
}
}
class CentrarFrame extends JFrame{
public CentrarFrame(){
setTitle("CentrarTeste");
setSize( DEFAULT_WIDTH, DEFAULT_HEIGHT );
Toolkit kit = Toolkit.getDefaultToolkit();
Dimension tamanhoTela = kit.getScreenSize();
int width = tamanhoTela.width;
int height = tamanhoTela.height;
setLocation( width / 2, height / 2 );
}
public static final int DEFAULT_WIDTH = 300;
public static final int DEFAULT_HEIGHT = 200;
}
espero ter ajudado.
Muito bom, eu tambem estava com essa duvida e as respostas foram bem esclarecedoras…
Boa !
Modifiquei o código para realmente aparecer centralizado:
this.setLocation(((Toolkit.getDefaultToolkit().getScreenSize().width / 2) - (this.getWidth() / 2)),
((Toolkit.getDefaultToolkit().getScreenSize().height / 2) - (this.getHeight() / 2)));
[quote=Pedrosa]Galera desenvolvi uma aplicação, mas a mesma sempre a abre na parte superior da tela, obs foi montada no NetBeans, qual a propriedade eu mudo para tal configuração ou onde coloco o código para funcionar?
[/quote]
Faço assim;
import javax.swing.Box;
public class cpc001 extends javax.swing.JFrame {
…
…
java.awt.Dimension screenSize = java.awt.Toolkit.getDefaultToolkit().getScreenSize();
setBounds((screenSize.width-490)/2, (screenSize.height-370)/2, 490, 370);
}
Espero ter ajudado
Lindberg
tentei todas estas opções e não consegui nenhuma :?
public class frmMainMenu extends JFrame {
private static final long serialVersionUID = 1L;
private JPanel jContentPane = null;
private JButton jButtonClient = null;
/**
* This is the default constructor
*/
public frmMainMenu() {
super();
initialize();
}
/**
* This method initializes this
*
* @return void
*/
private void initialize() {
this.setSize(564, 367);
this.setLocation(((Toolkit.getDefaultToolkit().getScreenSize().width / 2) - (this.getWidth() / 2)),
((Toolkit.getDefaultToolkit().getScreenSize().height / 2) - (this.getHeight() / 2)));
this.setContentPane(getJContentPane());
this.setTitle("Jframe");
}
/**
* This method initializes jContentPane
*
* @return javax.swing.JPanel
*/
private JPanel getJContentPane() {
if (jContentPane == null) {
jContentPane = new JPanel();
jContentPane.setLayout(null);
jContentPane.add(getJButtonClient(), null);
}
return jContentPane;
}
/**
* This method initializes jButtonClient
*
* @return javax.swing.JButton
*/
private JButton getJButtonClient() {
if (jButtonClient == null) {
jButtonClient = new JButton();
jButtonClient.setBounds(new Rectangle(15, 13, 143, 39));
jButtonClient.setText("Clientes");
jButtonClient.addMouseListener(new java.awt.event.MouseAdapter() {
public void mouseClicked(java.awt.event.MouseEvent e) {
new frmClient();
}
});
}
return jButtonClient;
}
}
[quote=tmagostinho]tentei todas estas opções e não consegui nenhuma :?
[/quote]
Tenta com esta
this.setLocationRelativeTo(null);//caso dentro da própria classe
nomeDaClasse.setLocationRelativeTo(null);//caso fora da classe
tenta usando o
setLocation(100,100);
[quote=t3sting]tenta usando o
setLocation(100,100);
[/quote]
Assim ele apenas vai colocar o frame há ± 100pixels da esquerda e ± 100 pixels do topo…
[quote=drsmachado][quote=tmagostinho]tentei todas estas opções e não consegui nenhuma :?
[/quote]
Tenta com esta
this.setLocationRelativeTo(null);//caso dentro da própria classe
nomeDaClasse.setLocationRelativeTo(null);//caso fora da classe
[/quote]
Pois essa também já tentei isso! :?
Já não sei que fazer!
Com o setLocation(100, 100); e nem mexe!
Se voce está usando JFrame ou JDialog deve usar deve usar Frame.setLocationRelativeTo(null);
dessa forma ele ira centralizar a tua tela.
Se você estiver usando o JinternalFrame ai tem que fazer um calculo para re-enderizar a tela no centro da aplicação se for o caso me responde que te envio o codigo para a centralização dos internal frame.
ate Jardel
Tem algo errado com o q vc tá fazendo.
setLocationRelativeTo(null); coloca o JFrame no centro da tela.
Acabei de testar, alterando o teu initialize
private void initialize() {
this.setSize(564, 367);
// this.setLocation(((Toolkit.getDefaultToolkit().getScreenSize().width / 2) - (this.getWidth() / 2)),
// ((Toolkit.getDefaultToolkit().getScreenSize().height / 2) - (this.getHeight() / 2)));
// this.setContentPane(getJContentPane());
this.setLocationRelativeTo(null);
this.setTitle("Jframe");
}
E com a classe
public class Chama {
public static void main(String[] args_){
frmMainMenu frm = new frmMainMenu();
frm.setVisible(true);
}
}
E o JFrame é aberto bem ao centro.
Mesmo com a chamada dentro da classe a saída da tela foi como eu esperava.
mas vc especificou a classe com
this.setLocation();
?
[quote=Giboty]Se voce está usando JFrame ou JDialog deve usar deve usar Frame.setLocationRelativeTo(null);
dessa forma ele ira centralizar a tua tela.
Se você estiver usando o JinternalFrame ai tem que fazer um calculo para re-enderizar a tela no centro da aplicação se for o caso me responde que te envio o codigo para a centralização dos internal frame.
ate Jardel[/quote]
Ele está utilizando um JFrame, o código está na pergunta do tópico.
E, sim, funciona como eu falei.
Problemas com a máquina dele.
[quote=Giboty]Se voce está usando JFrame ou JDialog deve usar deve usar Frame.setLocationRelativeTo(null);
dessa forma ele ira centralizar a tua tela.
Se você estiver usando o JinternalFrame ai tem que fazer um calculo para re-enderizar a tela no centro da aplicação se for o caso me responde que te envio o codigo para a centralização dos internal frame.
ate Jardel[/quote]
Estou a usar JFrame. mas para o que é também posso usar um JInternalFrame e fazer FullScreen.
Veja os códigos que postei acima, observe e modifique de acordo com o que coloquei.
[quote=drsmachado][quote=Giboty]Se voce está usando JFrame ou JDialog deve usar deve usar Frame.setLocationRelativeTo(null);
dessa forma ele ira centralizar a tua tela.
Se você estiver usando o JinternalFrame ai tem que fazer um calculo para re-enderizar a tela no centro da aplicação se for o caso me responde que te envio o codigo para a centralização dos internal frame.
ate Jardel[/quote]
Ele está utilizando um JFrame, o código está na pergunta do tópico.
E, sim, funciona como eu falei.
Problemas com a máquina dele.[/quote]
Que tipo de problemas?
Eu estou a usar eclipse com o Visual Editor, no Windows 7 :?
eu no netBeans usava
setLocationRelativeTo(getRootPane());
mas aqui não funciona!
[quote=drsmachado]Eu uso o mesmo ambiente (eclipse + Windows 7 - 64b)
Segue aí o anexo com o print do resultado…[/quote]
A diferença entre os 32b e os 64b não tem nada a ver com isso :? realmente não entendo o que se passa :? desde que depois no .JAR funcione tudo é o que que importa.
O código que testou foi exactamente o que mandei da primiera vez certo?