e ai galera, como eu faço para um formulário pequeno iniciar no meio da tela, e não no canto superior esquerdo como é o padrão, estou usando o netBeans 6.5, alguém pode me ajudar??
this.setLocationRelativeTo(null);
so colocar no construtor da classe ;D
ae brother…
this.setLocationRelativeTo(null);
esse trecho acho que resolve a parada…^^
Não lembro se da pra modificar pela paleta de propriedade do JFrame…quase não uso o netbeans… mas é só setar o locationRelative como null.
nossa eu pegava o tamanho da tela e calculava o centro
rssrsr
pessoal ainda não consegui resolver ja que para mim fazer o que o colega me disse eu tinha que colocar o this.setLocationRelativeTo(null); dentro do método initComponents() que é o método que o proórpio netbeans cria e portanto não me deixa alterá-lo que são as propriedades dos componentes.
alguem pode me ajudar??
já que n dá para alterar o metodo initComponents()… coloque setLocationRelativeTo(null); logo abaixo onde é chamado no construtor da classe.
assim deve resolver
Tenta assim:
cria esse método na tua classe
public void centralizarComponente() {
Dimension ds = Toolkit.getDefaultToolkit().getScreenSize();
Dimension dw = getSize();
setLocation((ds.width - dw.width) / 2, (ds.height - dw.height) / 2);
}
Em seguida, lá no construtor, abaixo do initComponents(), criado pelo netbeans, você coloca:
centralizarComponente();
Abraços!
Se não consegue colcoar no initComponent basta colcoar antes de tornalo visivel
//no main que o netbeans cria deve ser algo assim
//new Tela().setVisible(true);
//basta voce mudar isso
Tela tela = new Tela();
tela.setLocationRelativeTo(null);
tela.setVisible(true);
vc também pode usar o Swing Application Framework, se seus formulários estendem JFrame.
procure ela no gerenciador de Libs do Netbeans e adicione ao seu projeto.
depois crie uma classe assim:
package br.exemplo;
import org.jdesktop.application.Application;
import org.jdesktop.application.SingleFrameApplication;
public class MyApp extends SingleFrameApplication {
@Override
protected void startup()
{
// substitua MainForm pelo formulario principal da tua aplicacao
// esse form ira aparecer ja centralizado
show(new MainForm());
}
public static MyApp getApplication()
{
return Application.getInstance(MyApp.class);
}
// main do projeto
public static void main(String[] args)
{
// lanca a aplicacao
launch(MyApp.class, args);
}
}
crie um sub-pacote de nome resources (nesse caso, “br.exemplo.resources”), e nesse sub-pacote, crie um arquivo .properties de mesmo nome da classe acima (neste caso, MyApp.properties), com o seguinte conteúdo:
# Application global resources
Application.name = <digite aqui o Nome do app>
Application.title = <digite aqui o titulo do formulario principal>
Application.version = <digite aqui a versao do app>
Application.vendor = <digite o autor-empresa aqui>
Application.homepage = <digite aqui a sua home page>
Application.description = <digite aqui uma breve descr. do app>
Application.vendorId = ${Application.vendor}
Application.id = ${Application.name}
Application.lookAndFeel = system
essas variaveis acima serao acessiveis em toda a aplicacao, via o Swing App Framework
Agora vc pode criar um metodo nos formularios que vc quer mostrar centralizado:
package br.exemplo;
// gerencie os imports com a sua IDE
public class MyExampleForm extends JFrame {
...
public void showForm() {
// mostra o form centralizado. Se nao me engano, ele ateh guarda
// a posicao da janela e na proxima vez que vc abrir o form, ele
// estara na posicao onde vc tinha posicionado na ultima vez.
MyApp.getApplication().show(this);
}
...
}
esse metodo envolve um pouco mais de codigo inicial (uma classe pequena e um .properties), mas vc ja se familiariza com esse framework desktop.
este e o metodo que o netbeans usa qdo vc manda criar um projeto de app desktop
feitow!
Ta ai uma solução complicada para um problema simples já resolvido.
^^
isso ae problema solucionado da uma maneira rápida.
vlw Marky.Casconcelos pela dica.
Ao abrir o formulário no netbeans, em propriedades do formulário clica em Código, vai ter uma opção chamada Gerar Centralizado, basta selecionar e pronto.
Formulário > Propriedades > Código > Gerar Centralizado ou usa esse código abaixo
this.setLocationRelativeTo(null);
Não precisa, Sua Classe Obviamente Estende um JFrame ou JDialog coloca no construtor como disse o amigo acima!
Perfeito !!! Esse código aqui e top …Roda em qualquer app.
Pronto… simples assim