Jframe dentro de outro Jframe

Olá pessoal,

Como eu faço pra abrir um Jframe dentro de outro, já aberto? Exemplo:

Eu tenho a tela principal de uma aplicação desktop, e tenho botões que me levam a outras telas. Eu queria que a tela de cadastro de clientes, por exemplo, sobrescrevesse a minha tela principal, sem abrir uma nova janela. Espero que tenham entendido.

Ouvir falar em usar o InternalFrame, mas ñ entendi muito bem a sua utilização.

Desde já agradeço qualquer ajuda.

cara, você pode dar um setVisible(false); no panel com seu conteudo e construir um novo naquele lugar.

1 curtida

Opa!
Então, isso eu sei fazer. Mas fica esteticamente ruim, porque fica um abre e fecha de janela. Eu quero que na primeira janela (principal), que se abre na barra de tarefas do windows quando inicio minha aplicação, eu possa fazer tudo. Entende?

Não estou dizendo isso. Utilize um JFrame que dentro tem um JPanel. Esse JPanel é que você vai colocar seu conteudo, e é nesse que você colocará o visibleFalse e criará um novo JPanel naquele lugar.

1 curtida

entao… o que o [quote]pavei[/quote] quiz dizer foi o seguinte voce tem um frame cria um jpanel como setVisible(false) assim nao aparece o que voce tem dentro dele e cria outro jpanel tb setVisible(false) dai dependendo do que quizer ele chama passa o jpanel para setVisible(true)

e sobre o jInternalFrame e bem simples voce tem que criar um jDesktopPane pois o jInternalFrame so abre dentro do jDesktopPane

acho que e isso qualquer duvida me avisa

Dexa ver se eu entendi. No meu Jframe tem o JContentePane, daí eu faço JContentePane.setVisible(false) e tudo que está no meu frame some. Mas como é que eu faço pra colocar os componentes da outra tela?

=====================

Sobre o InternalFrame: eu crio o DesktopPane e o internalFrame. Mas como é que eu faço para abrir meu internal dentro do meu desktop? O meu desktop tem que estar dentro do Jframe?

Agradeço a ajuda.

[quote=elizier]Dexa ver se eu entendi. No meu Jframe tem o JContentePane, daí eu faço JContentePane.setVisible(false) e tudo que está no meu frame some. Mas como é que eu faço pra colocar os componentes da outra tela?

[/quote]

//SEU OUTRO PANEL COM OS DADOS DA OUTRA TELA
jPanel2.setVisible(true);

Comecei a usar o DesktopPane junto com o JinternalPane. Porém eu não sei como verificar se o internalframe já está aberto. Outro problema é que quando eu clico em um botão(em um DesktopPane) que chama o internal ele só aparece no segundo clique :shock:

//ação que o botão executa add(teste); //teste é o meu internal teste.setVisible(true); moveToFront(teste); //o botão que gera esta ação está no DesktopPane, e este por sua vez está num Jframe

Mais uma coisinha :slight_smile:
O internal não tem aqueles botões que fica no canto superior direito (fechar, minimizar, maximizar). Como faço para adicioná-los?

Obrigado.

[quote=elizier]Comecei a usar o DesktopPane junto com o JinternalPane. Porém eu não sei como verificar se o internalframe já está aberto. Outro problema é que quando eu clico em um botão(em um DesktopPane) que chama o internal ele só aparece no segundo clique :shock:

//ação que o botão executa add(teste); //teste é o meu internal teste.setVisible(true); moveToFront(teste); //o botão que gera esta ação está no DesktopPane, e este por sua vez está num Jframe

Mais uma coisinha :slight_smile:
O internal não tem aqueles botões que fica no canto superior direito (fechar, minimizar, maximizar). Como faço para adicioná-los?

Obrigado. [/quote]

Oi,

setClosable(true); // Fechar setMaximizable(true); // Maximizar setIconifiable(true); // Minimizar

Tchauzin!

Como verificar se o internalframe já está aberto?

//ação que o botão executa add(teste); //teste é o meu internal teste.setVisible(true); moveToFront(teste); //o botão que gera esta ação está no DesktopPane, e este por sua vez está num Jframe

Obrigado.

Oi,

Você poderia utilizar o método isVisible() para verificar se sua janela está visivel.

Tchauzin!

Cara vc podera ta fazendo o seguinte quando vc chamar um jFrame vc imediatamente fecha o atual!!!

//chamar jFrame
new nome_jFrame ().show(true);
//atual frame
new nome_jFrame().show(false);

ver se resolve!!!
e +/- isso!!
vai tentando
vlw

1 curtida