Tamanho do JDesktopPane

7 respostas
U

Olá Pessoal,

No construtor do meu projeto tenho o seguinte código:

initComponents();
        
        setExtendedState(MAXIMIZED_BOTH);
        
        setVisible(true);
       
        dktPhenix = new JDesktopPane();
               
        add(dktPhenix);

A minha intensão é fazer com que o JDesktopPane abra sempre maximizado, junto com o tamanho
da janela, ele acontece as vezes, outras vem em tamanho diferente.

E outra coisa é qdo minimizo um JinternalFrame, o cara simplesmente some!

Alguma dica?

Grato,

7 Respostas

D

Seu JDesktopPanel está adicionado no JFrame diretamente?
Qual gerenciador de layout q vc está utilizando no JFrame?

Eu normalmente seto o JFrame para usar o BorderLayout (se você estive fazendo no NetBeans). Caso esteja programando fora do editor visual do NetBeans, o BordeLayout já será o gerenciador padrão do JFrame.
Com o BorderLayout setado, coloco o JDesktopPane no centro do JFrame

Ai ele vai acompanhar o tamanho da janela certinho.

[]´s

D

Pelo initComponents parece q vc está usando o NetBeans mesmo. Como falei, sete o layout do JFrame para BorderLayout e ao arrastar o desktopPane, coloque ele no centro. Caso vá p/ outro lugar do JFrame, é só modificar no painel de propriedades que você quer q ele fique no centro.

[]´s

U

Ola David,

Não pude responder antes, vou fazer uns testes aqui (com as dicas q falou)
Mas sim, eh no NetBeans, amanha to colado aqui pra resolver isso e te dou um feedback.

Valeu a atenção!

Inteh.

M

Para funcionar… não coloque setLocation no JFrame que esta com JFrame.MAXIMIZED_BOTH e para quando tirar do maximizado ele ficar em um tamanho diferente mude a propriedade MinimunSize

U

David,

Funcionou blz, mas teve um probleminha q vou citar no final… e n entendi pq este trecho abaixo funciona somente as vezes.

Até isolei

// dktPhenix.setSize(getSize());

Sobre o probleminha. Eu n consegui fazer com q um JInternalFrame fosse exibido.

ifrmContaEstoque frm = new ifrmContaEstoque(); dktPhenix.add(frm); frm.setVisible(true);

Mas blz, tô futucando aqui.

Valeu!

U

Mark,

Mas n consegui abrir o form de forma maximizada se não desse jeito.
Há uma solução melhor então?

Valeu!

U

David,

Um detalhe, não vi na janela de propriedades a propriedade q setasse a localização do InternalFrame,
via código vai, mas lah n encontrei.

Criado 8 de janeiro de 2009
Ultima resposta 9 de jan. de 2009
Respostas 7
Participantes 3