Página Inicial do Fórum > [Tutoriais] - Dicas Sobre Java

Centralizar janelas na tela


Goto page 1 , 2  Next - >>


New Topic    Reply Message


  1. Raphael
    Offline
    Posts: 215

    Comment Arrow

    Publicado em: 09/04/2009 23:18:44



    Esta página exibe apenas os comentários deste tutorial, para ler o artigo, clique aqui.






  1. kirk
    Offline
    Posts: 14

    Comment Arrow

    Publicado em: 09/04/2009 23:18:44

    Como posso fazer para que um JInternalFrame fique centralizado em um JDesktopPane.

    Abraço!!!




  1. deivson
    Offline
    Posts: 51

    Comment Arrow

    Publicado em: 09/04/2009 23:18:44

    Pessoal,

    Naum precisa complicar ja ouviram falar de setLocationRelativeTo ??? Passe como parametro o frame que vc quer centralizar... se vc passar null como parametro ele centraliza no desktop...




  1. dr.morris
    Offline
    Posts: 3

    Comment Arrow

    Publicado em: 09/04/2009 23:18:44

    comecei programar em Java no dia 26 de Julho de de 2004.
    Tive um monte de Dúvidas, mas entrando neste site estou resolvendo todas. Essa de centralizar era uma. Valeu pela diga ai deivison.

    abraço a todos.




  1. #Jaques#
    Offline
    Posts: 2

    Comment Arrow

    Publicado em: 09/04/2009 23:18:44

    o "setLocationRelativeTo" funcionou perfeitamente.
    Obrigado pela dica!

    _________________
    Sonhar só pode ofender aos que não sonham




  1. tonyam
    Offline
    Posts: 7

    Comment Arrow

    Publicado em: 09/04/2009 23:18:44

    no Jframe funciona.

    Mas en JInternalFrame ???

    crie o metodo:

    public void centralizar(JDesktopPane dp) {
    Dimension ds = dp.getSize();
    Dimension dw = this.getSize();
    this.setLocation((ds.width - dw.width) / 2, (ds.height - w.height) / 2);

    }


    e passe como parametro o JDesktoPane.

    supondo que (this) seja um JInternalFrame


    não sei se fui claro. Mas é isso

    Tony Amorim




  1. satrianijava
    Offline
    Posts: 104

    Comment Arrow

    Publicado em: 09/04/2009 23:18:44

    Como faço para deixar o JFrame centralizado e fixo no meio da tela, sem que o usuário possa arrasta-lo?

    _________________
    Tenha sua empresa na web.
    http://suaempresanaweb.vila.bol.com.br




  1. Sidplay
    Offline
    Posts: 70

    Comment Arrow

    Publicado em: 16/09/2009 23:33:05

    Que lugar da classe que eu devo colocar esse bloco de código? Eu coloquei logo no inicio da classe mas não mudou nada. A janela sempre aparece alinahda na esquerda da tela.




  1. mazin
    Offline
    Posts: 6

    Comment Arrow

    Publicado em: 17/09/2009 18:10:12

    Sidplay:
    Que lugar da classe que eu devo colocar esse bloco de código? Eu coloquei logo no inicio da classe mas não mudou nada. A janela sempre aparece alinahda na esquerda da tela.



    usa esse componente




  1. staroski
    Offline
    Posts: 3374

    Comment Arrow

    Publicado em: 18/09/2009 03:42:48

    A partir do Java 1.4, não é necssário computar explicitamente as dimensões da tela e da janela para poder centralizá-la.

    Basta invocar o método setLocationRelativeTo.

    Esse método recebe como parametro um componente, que será tomado como base para centralizar sua janela.

    Se o parâmetro for null, então a janela será centralizada em relação ao próprio dispositivo gráfico (monitor)
    _________________
    Ricardo Artur Staroski, OCP-JP
    Blumenau - SC




  1. Sidplay
    Offline
    Posts: 70

    Comment Arrow

    Publicado em: 18/09/2009 07:03:21

    staroski:
    A partir do Java 1.4, não é necssário computar explicitamente as dimensões da tela e da janela para poder centralizá-la.

    Basta invocar o método setLocationRelativeTo.

    Esse método recebe como parametro um componente, que será tomado como base para centralizar sua janela.

    Se o parâmetro for null, então a janela será centralizada em relação ao próprio dispositivo gráfico (monitor)



    Mas que lugar da classe que eu uso isso? É fora do construtor da classe mesmo? Eu tentei assim e não muda nada também:

    this.setLocationRelativeTo(null);




  1. simu
    Offline
    Posts: 9410

    Comment Arrow

    Publicado em: 19/09/2009 00:03:12

    Sidplay:
    staroski:
    A partir do Java 1.4, não é necssário computar explicitamente as dimensões da tela e da janela para poder centralizá-la.

    Basta invocar o método setLocationRelativeTo.

    Esse método recebe como parametro um componente, que será tomado como base para centralizar sua janela.

    Se o parâmetro for null, então a janela será centralizada em relação ao próprio dispositivo gráfico (monitor)



    Mas que lugar da classe que eu uso isso? É fora do construtor da classe mesmo? Eu tentei assim e não muda nada também:

    this.setLocationRelativeTo(null);


    Não existe um lugar fixo na classe, depende de como voce escreveu a classe!
    O setLocationRelativeTo normalmente tem que vir depois da janela ter o tamanho definido e melhor antes que a janela esteja visível.
    []
    _________________
      Nome real: Carlos F. Heuberger

    Removeram os meus direitos de administrador e moderador - sem aviso, pela segunda vez - contate o ombudsman (?), a equipejavafree ou a "alta gerência" se necessário - Que pena... que terminou dessa maneira!

    "The mod javafree deserves, but not the one it needs right now."
    --------------------
    Não leio nem respondo MPs!
    This posting is provided AS IS with no warranties and confers no rights.




  1. Sidplay
    Offline
    Posts: 70

    Comment Arrow

    Publicado em: 20/09/2009 07:33:45

    simu ou quem souber, eu coloquei aqui e nada:



    E aqui também depois do setSize e nada:




    Continua sempre igual.




  1. simu
    Offline
    Posts: 9410

    Comment Arrow

    Publicado em: 21/09/2009 02:58:53

    Sidplay:
    simu ou quem souber, eu coloquei aqui e nada:



    E aqui também depois do setSize e nada:




    Continua sempre igual.


    e o CadastroCliente é o JFrame qe está sendo mostrado?
    Como faz para mostrar ele?

    Aqui um exemplo mínimo (usando parte do seu código):

    []]
    _________________
      Nome real: Carlos F. Heuberger

    Removeram os meus direitos de administrador e moderador - sem aviso, pela segunda vez - contate o ombudsman (?), a equipejavafree ou a "alta gerência" se necessário - Que pena... que terminou dessa maneira!

    "The mod javafree deserves, but not the one it needs right now."
    --------------------
    Não leio nem respondo MPs!
    This posting is provided AS IS with no warranties and confers no rights.




  1. Sidplay
    Offline
    Posts: 70

    Comment Arrow

    Publicado em: 21/09/2009 04:02:25

    Simu, esse Cadastro de Clientes é o frame que está sendo mostrado sim. É a GUI do programa, eu to fazendo tudo na mesma classe. Mas essa classe não tem método main, eu coloquei aqui pra testar mas ainda continua igual.

    Você quer dar uma olhada no código inteiro? Coloquei em anexo a classe. Ela tá bem grande porque essa é uma das telas do meu TCC que eu estou fazendo.



    Download:  CadastroCliente.java
    Size:  30 KB




  1. simu
    Offline
    Posts: 9410

    Comment Arrow

    Publicado em: 21/09/2009 04:44:43

    Sidplay:
    Simu, esse Cadastro de Clientes é o frame que está sendo mostrado sim. É a GUI do programa, eu to fazendo tudo na mesma classe. Mas essa classe não tem método main, eu coloquei aqui pra testar mas ainda continua igual.

    Você quer dar uma olhada no código inteiro? Coloquei em anexo a classe. Ela tá bem grande porque essa é uma das telas do meu TCC que eu estou fazendo.


    Esse JFrame "Cadastro de Clientes - Stelzer Consultoria" está aparencendo centralizado corretamente (apagando as referências às classes não postadas)!

    Repetindo: "Como faz para mostrar ele?", como é o código?

    ou será que tem algum outro código externo (onde essa classe é instanciada, ClienteModel, ...) alterando a posição do JFrame?

    tambem pode ser algum problema relacionado com o tempo de acesso a banco de dados...

    outra tentativa:

    []]
    _________________
      Nome real: Carlos F. Heuberger

    Removeram os meus direitos de administrador e moderador - sem aviso, pela segunda vez - contate o ombudsman (?), a equipejavafree ou a "alta gerência" se necessário - Que pena... que terminou dessa maneira!

    "The mod javafree deserves, but not the one it needs right now."
    --------------------
    Não leio nem respondo MPs!
    This posting is provided AS IS with no warranties and confers no rights.




  1. Sidplay
    Offline
    Posts: 70

    Comment Arrow

    Publicado em: 21/09/2009 12:53:53

    simu:
    Sidplay:
    Simu, esse Cadastro de Clientes é o frame que está sendo mostrado sim. É a GUI do programa, eu to fazendo tudo na mesma classe. Mas essa classe não tem método main, eu coloquei aqui pra testar mas ainda continua igual.

    Você quer dar uma olhada no código inteiro? Coloquei em anexo a classe. Ela tá bem grande porque essa é uma das telas do meu TCC que eu estou fazendo.


    Esse JFrame "Cadastro de Clientes - Stelzer Consultoria" está aparencendo centralizado corretamente (apagando as referências às classes não postadas)!

    Repetindo: "Como faz para mostrar ele?", como é o código?

    ou será que tem algum outro código externo (onde essa classe é instanciada, ClienteModel, ...) alterando a posição do JFrame?

    tambem pode ser algum problema relacionado com o tempo de acesso a banco de dados...

    outra tentativa:

    []]



    Tem uma classe ClienteModel sim que é a classe onde constroi a jTable, veja:



    As classes externas são classes para cara máscara dos campos do cadastro, de conexão e pra gerenciar a jTable. O Frame é mostrado dentro dessa classe mesmo.




  1. simu
    Offline
    Posts: 9410

    Comment Arrow

    Publicado em: 23/09/2009 08:21:58

    adicionado texto em vermelho abaixo

    simu:
    ...
    Esse JFrame "Cadastro de Clientes - Stelzer Consultoria" está aparencendo centralizado corretamente ...!
    O código postado está em ordem!

    Repetindo: "Como faz para mostrar ele?", como é o código?
    quero dizer, onde está o setVisible() e o que acontece com a classe lá?

    ou será que tem algum outro código externo ... alterando a posição do JFrame?
    verificou?

    tambem pode ser algum problema relacionado com o tempo de acesso a banco de dados...

    outra tentativa:
    testou?

    []]



    _________________
      Nome real: Carlos F. Heuberger

    Removeram os meus direitos de administrador e moderador - sem aviso, pela segunda vez - contate o ombudsman (?), a equipejavafree ou a "alta gerência" se necessário - Que pena... que terminou dessa maneira!

    "The mod javafree deserves, but not the one it needs right now."
    --------------------
    Não leio nem respondo MPs!
    This posting is provided AS IS with no warranties and confers no rights.




  1. Sidplay
    Offline
    Posts: 70

    Comment Arrow

    Publicado em: 23/09/2009 14:02:30

    Simu, nessa classe não tem o setVisible, mas eu coloquei esse código aqui e não acontece nada, continua aparecend na esquerda da tela.



    Com você deu certo então? As classes externas que eu tenho é tudo pra gerenciar a jTable apenas.




  1. simu
    Offline
    Posts: 9410

    Comment Arrow

    Publicado em: 24/09/2009 00:28:40

    Sidplay:
    Simu, nessa classe não tem o setVisible, mas eu coloquei esse código aqui e não acontece nada, continua aparecend na esquerda da tela.



    Com você deu certo então? As classes externas que eu tenho é tudo pra gerenciar a jTable apenas.


    muito estranho, foi isso que eu fiz...
    tenta assim e posta o que foi escrito

    []]
    _________________
      Nome real: Carlos F. Heuberger

    Removeram os meus direitos de administrador e moderador - sem aviso, pela segunda vez - contate o ombudsman (?), a equipejavafree ou a "alta gerência" se necessário - Que pena... que terminou dessa maneira!

    "The mod javafree deserves, but not the one it needs right now."
    --------------------
    Não leio nem respondo MPs!
    This posting is provided AS IS with no warranties and confers no rights.




  1. Sidplay
    Offline
    Posts: 70

    Comment Arrow

    Publicado em: 24/09/2009 06:53:09

    Coloquei isso no Main e não printou nada na tela e também não centralizou ainda a janela. Que estranho isso hein.




  1. staroski
    Offline
    Posts: 3374

    Comment Arrow

    Publicado em: 24/09/2009 07:22:34

    Sidplay:
    Coloquei isso no Main e não printou nada na tela e também não centralizou ainda a janela. Que estranho isso hein.


    Tem certeza de que seu bytecode foi recompilado?
    Confira os .class, apague-os e recompile...
    _________________
    Ricardo Artur Staroski, OCP-JP
    Blumenau - SC




  1. Sidplay
    Offline
    Posts: 70

    Comment Arrow

    Publicado em: 24/09/2009 07:37:58

    staroski:
    Sidplay:
    Coloquei isso no Main e não printou nada na tela e também não centralizou ainda a janela. Que estranho isso hein.


    Tem certeza de que seu bytecode foi recompilado?
    Confira os .class, apague-os e recompile...



    Pronto, apaguei o .class mas ainda continua a mesma coisa.




  1. Sidplay
    Offline
    Posts: 70

    Comment Arrow

    Publicado em: 24/09/2009 16:59:39

    Depois eu vou criar uma classe com um frame só pra testar isso. Aí eu posto depois aqui o resultado.




  1. simu
    Offline
    Posts: 9410

    Comment Arrow

    Publicado em: 25/09/2009 06:37:46

    se não for problema de compilação, pode ser problema de ter uma classe (.class) com o mesmo nome em outro diretório que está sendo encontrada antes da classe correta...
    tente com outro nome, por exemplo "CadastroCliente123" (tambem garante que a .class é criada do zero)
    []]
    _________________
      Nome real: Carlos F. Heuberger

    Removeram os meus direitos de administrador e moderador - sem aviso, pela segunda vez - contate o ombudsman (?), a equipejavafree ou a "alta gerência" se necessário - Que pena... que terminou dessa maneira!

    "The mod javafree deserves, but not the one it needs right now."
    --------------------
    Não leio nem respondo MPs!
    This posting is provided AS IS with no warranties and confers no rights.




  1. Sidplay
    Offline
    Posts: 70

    Comment Arrow

    Publicado em: 25/09/2009 14:16:55

    Criei outra classe teste em outro pacote e ainda não deu certo. Aqui o .class e o .java ficam na mesma pasta. O código da classe teste é esse:




  1. staroski
    Offline
    Posts: 3374

    Comment Arrow

    Publicado em: 25/09/2009 14:54:40

    Nossa, tanta confusão por algo tão simples...
    É só falta de atenção!

    Antes você estava executando bytecode antigo...

    AGORA VOCÊ NÃO ESTÁ INVOCANDO O MÉTODO setLocationRelativeTo(null)


    _________________
    Ricardo Artur Staroski, OCP-JP
    Blumenau - SC




  1. Sidplay
    Offline
    Posts: 70

    Comment Arrow

    Publicado em: 25/09/2009 17:18:43

    staroski, testei sua classe aqui e veja:

    0


    Acho que o problema é só aqui hein. Fiz até em outro workspace e não vai, sempre executa na esquerda. Mas pode deixar, isso nem é importante também. Não é isso que vai me fazer passar ou reprovar na hora de apresentar o TCC mesmo hehehe. Tem coisa bem pior que vou ter que resolver no meu sistema. Mas valeu a todos pela ajuda e paciência.




  1. staroski
    Offline
    Posts: 3374

    Comment Arrow

    Publicado em: 25/09/2009 18:16:47

    Bom, o teu fonte está diferente do que eu postei...
    Eu não criei nenhum metodo initialize

    Posta o código da sua classe....
    _________________
    Ricardo Artur Staroski, OCP-JP
    Blumenau - SC




  1. Sidplay
    Offline
    Posts: 70

    Comment Arrow

    Publicado em: 25/09/2009 18:34:57

    staroski:
    Bom, o teu fonte está diferente do que eu postei...
    Eu não criei nenhum metodo initialize

    Posta o código da sua classe....



    Engraçado, agora que vi ali esse método. Mas testei de novo aqui com seu código e agora prestando atenção, coloquei certinho como você passou e ainda fica aparecendo na esquerda. O código da minha classe está em anexo.



    Download:  CadastroCliente.java
    Size:  33 KB




  1. simu
    Offline
    Posts: 9410

    Comment Arrow

    Publicado em: 29/09/2009 12:25:01

    Sidplay:
    staroski:
    Bom, o teu fonte está diferente do que eu postei...
    Eu não criei nenhum metodo initialize

    Posta o código da sua classe....



    Engraçado, agora que vi ali esse método. Mas testei de novo aqui com seu código e agora prestando atenção, coloquei certinho como você passou e ainda fica aparecendo na esquerda. O código da minha classe está em anexo.


    tentou o meu mini-exemplo acima?
    http://javafree.uol.com.br/topic-1279-Centralizar-janelas-na-tela.html?page=1#176453

    outra pergunta: onde/como é que voce está rodando essa classe? por uma IDE? numa página HTML?...
    []]
    _________________
      Nome real: Carlos F. Heuberger

    Removeram os meus direitos de administrador e moderador - sem aviso, pela segunda vez - contate o ombudsman (?), a equipejavafree ou a "alta gerência" se necessário - Que pena... que terminou dessa maneira!

    "The mod javafree deserves, but not the one it needs right now."
    --------------------
    Não leio nem respondo MPs!
    This posting is provided AS IS with no warranties and confers no rights.




  1. Sidplay
    Offline
    Posts: 70

    Comment Arrow

    Publicado em: 30/09/2009 07:56:17

    simu:
    Sidplay:
    staroski:
    Bom, o teu fonte está diferente do que eu postei...
    Eu não criei nenhum metodo initialize

    Posta o código da sua classe....



    Engraçado, agora que vi ali esse método. Mas testei de novo aqui com seu código e agora prestando atenção, coloquei certinho como você passou e ainda fica aparecendo na esquerda. O código da minha classe está em anexo.


    tentou o meu mini-exemplo acima?
    http://javafree.uol.com.br/topic-1279-Centralizar-janelas-na-tela.html?page=1#176453

    outra pergunta: onde/como é que voce está rodando essa classe? por uma IDE? numa página HTML?...
    []]



    Sim tentei e continua sempre igual. Eu estou rodando na IDE Eclipse.




  1. simu
    Offline
    Posts: 9410

    Comment Arrow

    Publicado em: 30/09/2009 08:25:50

    muito estranho, tenta com essa classe:

    []]
    _________________
      Nome real: Carlos F. Heuberger

    Removeram os meus direitos de administrador e moderador - sem aviso, pela segunda vez - contate o ombudsman (?), a equipejavafree ou a "alta gerência" se necessário - Que pena... que terminou dessa maneira!

    "The mod javafree deserves, but not the one it needs right now."
    --------------------
    Não leio nem respondo MPs!
    This posting is provided AS IS with no warranties and confers no rights.




  1. Sidplay
    Offline
    Posts: 70

    Comment Arrow

    Publicado em: 30/09/2009 08:34:08

    Finlamente! Agora sim executou no centro! Testei essa sua classe e apareceu no centro da tela. Veja o print:

    0




  1. simu
    Offline
    Posts: 9410

    Comment Arrow

    Publicado em: 30/09/2009 04:50:45

    A próxima tentativa seria:

    mas estou estranhando essa mensagem na Console...
    parece que voce está usando o Visual Editor para rodar o programa!

    Console:

    Centro [JavaBean] C:\...
    IWAV0055I Java Bean Centro started with the main method



    Tenta rodar o CadastroCliente como uma "Java Application"?
    Dentro da classe que tem o main, selecione os menus:
    Run -> Run As... -> Java Application
    ou
    Mouse Direito -> Run As... -> Java Application

    []]
    _________________
      Nome real: Carlos F. Heuberger

    Removeram os meus direitos de administrador e moderador - sem aviso, pela segunda vez - contate o ombudsman (?), a equipejavafree ou a "alta gerência" se necessário - Que pena... que terminou dessa maneira!

    "The mod javafree deserves, but not the one it needs right now."
    --------------------
    Não leio nem respondo MPs!
    This posting is provided AS IS with no warranties and confers no rights.




  1. Sidplay
    Offline
    Posts: 70

    Comment Arrow

    Publicado em: 30/09/2009 07:44:40

    simu, testei aqui essa outra classe e também está executando no meio. Eu estava executando antes com o Java Bean sim, mas testei aqui usando Java Application e foi tudo normal também. Agora como a gente faz pra executar a minha classe no meio? Pelo menos os testes tá tudo ok agora.




  1. staroski
    Offline
    Posts: 3374

    Comment Arrow

    Publicado em: 30/09/2009 09:43:48

    Sidplay:
    Eu estava executando antes com o Java Bean sim, mas testei aqui usando Java Application e foi tudo normal também.


    Beleza!

    Sidplay:
    Agora como a gente faz pra executar a minha classe no meio?


    Ué, da mesma forma como você fez antes, Run as Java Application selecionando sua classe com método main
    _________________
    Ricardo Artur Staroski, OCP-JP
    Blumenau - SC




  1. simu
    Offline
    Posts: 9410

    Comment Arrow

    Publicado em: 30/09/2009 22:52:41

    Sidplay:
    simu, testei aqui essa outra classe e também está executando no meio. Eu estava executando antes com o Java Bean sim, mas testei aqui usando Java Application e foi tudo normal também. Agora como a gente faz pra executar a minha classe no meio? Pelo menos os testes tá tudo ok agora.


    do jeito que escreví na MENSAGEM ANTERIOR

    simu:
    .
    .
    .
    Tenta rodar o CadastroCliente como uma "Java Application"?
    Dentro da classe que tem o main, selecione os menus:
    Run -> Run As... -> Java Application
    ou
    Mouse Direito -> Run As... -> Java Application


    []]


    []
    _________________
      Nome real: Carlos F. Heuberger

    Removeram os meus direitos de administrador e moderador - sem aviso, pela segunda vez - contate o ombudsman (?), a equipejavafree ou a "alta gerência" se necessário - Que pena... que terminou dessa maneira!

    "The mod javafree deserves, but not the one it needs right now."
    --------------------
    Não leio nem respondo MPs!
    This posting is provided AS IS with no warranties and confers no rights.




  1. BrunoMelo
    Offline
    Posts: 53

    Comment Arrow

    Publicado em: 08/10/2009 14:50:50

    Segue abaixo :

    frame.setLocationRelativeTo(null);


    abraço !
    _________________
    Bruno Giannella de Melo.




  1. simu
    Offline
    Posts: 9410

    Comment Arrow

    Publicado em: 09/10/2009 02:12:33

    BrunoMelo:
    Segue abaixo :

    frame.setLocationRelativeTo(null);


    abraço !


    nesse ponto já estivemos a 3 semanas atrás: aparentemente o setLocationRelativeTo não está funcionando...
    não leu as mensagens ateriores, néé?!

    mas acho que o problema já foi resolvido...
    []]
    _________________
      Nome real: Carlos F. Heuberger

    Removeram os meus direitos de administrador e moderador - sem aviso, pela segunda vez - contate o ombudsman (?), a equipejavafree ou a "alta gerência" se necessário - Que pena... que terminou dessa maneira!

    "The mod javafree deserves, but not the one it needs right now."
    --------------------
    Não leio nem respondo MPs!
    This posting is provided AS IS with no warranties and confers no rights.




  1. Relacionados





New Topic    Reply Message     Forum Main Page -> [Tutoriais] - Dicas Sobre Java


Goto page 1 , 2  Next - >>