Problema ao adicionar um frame em JDesktopPane

E aew galera,
eu estou com um problema. eu estou adicionando um frame em um Desktop Pane, só que o o Frame não está ocupando todo o Desktop Pane… o que eu posso fazer para ocupar toda a extensão?

a parte do código que eu adiciono ao Desktop Pane é a seguir:

VisualizacaoTabela verTabela = new VisualizacaoTabela(1, beanList); //jDesktopPane1.add(verTabela.getContentPane()); //2ª Tentativa : jDesktopPane1.add(verTabela.getContentPane(), MAXIMIZED_BOTH);

Valeu!

Cara, nunca usei o JDesktopPane!

Tem como colocares uma parte maior do código para ver se consigo reproduzir o erro?

Você está setando um gerenciador de layout?
Tente setar um gerenciador e ver se resolve.

Se você quer obter o efeito de uma janela principal com várias “subjanelas” não deve adicionar o contentPane no JDesktopPane: deve criar uma instância da classe JInternalFrame, mudar o contentPane dessa instância e depois adicioná-la ao JDesktopPane. Por exemplo:

JInternalFrame janelaInterna1 = new JInternalFrame();
janelaInterna1.setContentPane(oNovoContentPane);
jDesktopPane1.add(janelaInterna1); // agora sim

Eu tentei fazer isso com o código a seguir, só que não apareceu o JasperViewer. A tela ficou em branco. O que pode ser?
E a minha intenção, é colocar o frame do JasperViewer no frame da minha aplicação.
Eu não quero o efeito de janela dentro de outra, queria apenas o próprio Viewer x)
Antes eu tava fazendo com Internal Frame, mas achamos melhor não usar…

public void visualizarPDF() {
        JasperViewer view = new JasperViewer(print);
        JInternalFrame janelaInterna = new JInternalFrame();
        view.setExtendedState(MAXIMIZED_BOTH);
        janelaInterna.setContentPane(view.getContentPane());
        jDesktopPane1.add(janelaInterna);
        //jDesktopPane1.add(view.getContentPane()); //O método como eu estava fazendo antes.
        progress.progressDone();
    }

Essa parte que eu coloquei é a parte que executa… se achar necessário eu coloco mais partes…


Acho que não. aushush não sei bem o que seria um gerenciador de layout… :confused: aprender a usar Swing no NetBeans dá nisso… hehehe

Agora eu não entendi… você está usando o JDektopPane e não que uma janela dentro da outra??? Mas é justamente para isso que ele serve…

Veja um exemplo do JDesktopPane em ação:

É esse efeito que você quer?

Hehhehe na verdade, eu não sei se tenho que usar o jDesktopPane…
Veja a foto que eu postei.
O efeito que eu quero, é apresentar algo em um frame. No exemplo, tem uma tabela. Esse meu aplicativo apresenta uma tabela e um JasperViewer.
Basicamente, o que quero é colocar um frame que contém a tabela no frame do meu aplicativo.

http://img78.imageshack.us/my.php?image=deskpaneka8.jpg

Realmente não precisa de JDesktopPane. Sugiro que você, no lugar do desktop pane, adicione um JPanel simples. Aí, na hora de adicionar a tabela, use algo como?

meuPainel.setLayout(new BorderLayout());
meuPainel.add(minhaTabela, BorderLayout.CENTER); // vai ocupar todo o painél

Ahhh eh mesmo… hahaa
agora que vi aqui… o JPanel aceita um componente, assim como o desktop pane… x)
achei q o JPanel não aceitava… então vai dar certo… vo testar aqui e depois posto o resultado!

Valeu pela ajuda galera! :slight_smile:

EDIT: ah =/ nao deu certo ainda…

eu to usando

setExtendedState(MAXIMIZED_BOTH);

no frame da tabela pra maximizar a tela…

ai queria colocar isso dentro do painel… tem alguma ideia do que eu possa

valeu!

EDIT2: Haa… achei uma solução, mas é gambearra demais. Se alguem souber me ajudar eu ainda quero! ehheh
o jeito q eu arranjei é deixar o tamanho do frame da tabela do tamanho exato que eu quero colocar. :stuck_out_tongue:
O problema é q no JasperViewer n tem como mudar…

acho que descubri algo macabro no meu programa… uahuah
acho que o problema não está no panel, ou em algo do tipo…
acho que o problema é meu progress bar… acho q ele ta dando erro, e por isso não ta "atualizando " a tela, e aparecendo o Viewer. :stuck_out_tongue:
Vou testar mais aqui.

Bem, realmente é algo macabro…
Eu estou usando o BorderLayout.CENTER…
mas é como se ele só funcionasse quando eu chamo outro método…
na verdade, o único método que “atualiza” a minha tela é o action performed do primeiro ComboBox, que atualiza o segundo ComboBox, e só. Não faz sentido.
Alguem me ajuda plz :slight_smile:

Bem galera,
resolvi meu problema! :slight_smile:
Pra quem estiver precisando do mesmo, é só usar o updateUI.
No meu caso, eu dei updateUI no jPanel, ficando:

jPanel2.updateUI();