Tamanho do JFrame

Olá pessoal,

Estou desenvolvendo uma aplicação onde utilizo um JFrame junto com um JDesktopPane.

O meu problema tá no momento em que inicio a aplicação, pois a janela principal da mesma pega toda a área do monitor, não aparecendo a barra de tarefas. Tem como eu permitir que a aplicação se acomode acima da barra de tarefas, como ocorre com a maioria das aplicações?

Abraços,
Juliano Moreno

Na parte do codigo que vc seta as configurações do frame , acrescenta esse aki
frame.setExtendedState(JFrame.MAXIMIZED_BOTH);

Acebei demorando em voltar a comentar aqui, devido ao fato de eu ter viajado.

Com realção a sua sugestão, não funcionou. O frame ainda continua pegando a tela toda.

Tem mais alguma outra sugestão?

Abraços,
Juliano

Jnmoreno,

o que hideekii disse está correto, mas falta só um detalhe. Você tem que setar o método setResizable(boolean) com false.

Dá uma olhada no trecho de código abaixo:

frame.setVisible(true);
frame.setResizable(false);
frame.setExtendedState(JFrame.MAXIMIZED_BOTH);
frame.setLocationRelativeTo(null);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

Esse código foi testado no windows, não sei se no linux funcionará.

Vá em frente. Qualquer dúvida estamos por aqui.

Olá Petrônio,

Fiz tudo o que vocês sugeriram, mesmo assim não tá funcionando.

A minha aplicação chama um tela Splash antes, tirei a chamada dessa tela, pensando que o problema poderia estar aí, mas nem assim o problema foi resolvido.

Abaxio segue meu código:

    public Principal() {
        super("Sistema");
        
        
        setResizable(false);
        setExtendedState(JFrame.MAXIMIZED_BOTH);
        setLocationRelativeTo(null); 
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);    
  
         
                
        
        //Set up the GUI.
        desktop = new JDesktopPane(); //a specialized layered pane
        setContentPane(desktop);
        
        setJMenuBar(createMenuBar());
        
        //Make dragging a little faster but perhaps uglier.
        desktop.setDragMode(JDesktopPane.OUTLINE_DRAG_MODE);
        
        //chamando o formulario de login
        chamaLogin();
        
        
        verificaLogin();    
        
    }

Agradeço qualquer ajuda pessoal.

Abraços,
Juliano Moreno

pode ser cache
qual IDE vc usa??? as vezes meu pc da a louca e preciso apagar todos os .class e conpilar denovo para executar corretamente…uso JDeveloper no trabalho, uma verdadeira kaka…
no netbeans tem um comando clean and build project…

vc pode verificar se vc esta setando o tamanho do frame tbm
frame.setSize(x,y);

se o valor for muito grande e estiver depois do comando setExtendedState não vai funcionar

Oi hideekii,

A IDE que utilizo é Eclipse versão 3.2.0, a versão do JDK é 5.0.

Quanto ao método frame.setSize(x,y), não estou utilizando. Ao invés dele utilizo o método setExtendedState(JFrame.MAXIMIZED_BOTH).

O sistema operacional que utilizo é Windows XP Professional.

Realmente eu não sei o que pode estar acontecendo.

Abraços,
Juliano Moreno

coloca um tamanho qualquer pro frame, setSize(), e depois poe o extendedstate antes de vc chamar o metodo setVisible do frame

tenho quase crtz que é a hora que vc chama o metodo que não esta deixando executar…swing tem algumas sequencias que devem ser respeitadas…por exemplo, se vc colocar o metodo setVisible antes do extendedstate, a tela pisca causando um efeito meio estranho, entre outros…

Oi hideekii,

Cara fiz tudo o que você me falou. Não funcionou.

Onde consigo obter essa seqüência pra chamar métodos swing. Pode me indicar algum site.

Abraços,
Juliano Moreno

alguma coisa no seu codigo não ta deixano executa o comando
cria essa classe aki e tenta roda…

no frame principal vc so precisa disso…

Oi hideekii,

Fiz esse exemplo que você me passou, e realmente funcionou corretamente, do jeito que quero. No entanto quando apliquei as modificações para o meu JFrame, o mesmo não funcionou.

Estou começando a achar que o problema deve estar relacionado a 3 coisas:

a) o fato de eu adicionar um JDesktopPane no meu JFrame; ou

b) o fato de eu chamar uma imagem como Splash no início do programa, antes do JFrame iniciar; ou

c) o fato de eu chamar um ou outro JFrame para fazer login, este aparece na frente do JFrame principal, no entanto as propriedades do JFrame principal são passadas antes de se chamar o JFrame de Login.

Vou pesquisar mais um pouco aqui, mas sinceramente já me passa pela cabeça deixar como está.

Abraços,
Juliano Moreno