Problema com jInternalFrame chamando outro jInternalFrame
7 respostas
I
ihorran
Galera sou novo no forum e gostaria de tirar uma duvida que esta me tirando o sono.
Estou desenvolvendo um sistema para meu trabalho de faculdade e estou tendo problemas.
Seguinte criei uma tela principal utilizando o JFrame e JDesktopPane com menu.
Quando acesso uma determinada função criei uma nova janela utilizando o JInternalFrame(Browser).
Nesta tela coloquei botões e um JTable com o JScrollPane.
Até ai tudo bem… funcionando perfeitamente.
Porem em um dos botões criados estou criando uma outra classe tambem utilizando o JInternalFrame(Form) porem ao abrir esta janela a primeira continua aparecendo atraz dela com os botões e tabela podendo clicar nos botões e tudo mais.
Então gostaria de quando abrisse o segundo JInternalFrame que pertence ao primeiro aparecesse apenas a tela nova deixando a tela de traz escondida.
Inclui a segunda JInternalFrame dando um .add() no objeto da primeira. Acho que este é o erro mas não sei como fazer de outro jeito.
Não existem JInternalFrames modais. Então, não é possível abrir um sobre o outro e deixar o de trás desabilitado.
A alternativa seria, talvez, deixar o outro JInternalFrame invisível. Para isso, simplesmente chama setVisible(false) antes de abrir o próximo internalFrame. Será necessário também passar a referência do frame escondido para o aberto, para que ele possa tornar esse frame visível novamente ao fechar.
Entretanto, esse não é um comportamento muito comum em sistema operacional nenhum. O melhor é não usar o JInternalFrame e trabalhar só com JFrames e JDialogs, como toda aplicação Windows faz (nem mesmo o Word, que era famoso por ter esse recurso, o possui mais).
I
ihorran
Anime:
Oi,
Seu projeto é Web ou Desktop?
Desktop…
I
ihorran
ViniGodoy:
Não existem JInternalFrames modais. Então, não é possível abrir um sobre o outro e deixar o de trás desabilitado.
A alternativa seria, talvez, deixar o outro JInternalFrame invisível. Para isso, simplesmente chama setVisible(false) antes de abrir o próximo internalFrame. Será necessário também passar a referência do frame escondido para o aberto, para que ele possa tornar esse frame visível novamente ao fechar.
Entretanto, esse não é um comportamento muito comum em sistema operacional nenhum. O melhor é não usar o JInternalFrame e trabalhar só com JFrames e JDialogs, como toda aplicação Windows faz (nem mesmo o Word, que era famoso por ter esse recurso, o possui mais).
Entendi… acho que vou deixar uma jInternalFrame e a outra chamar uma JFrames menor, deve funcionar.
Muito obrigado!
ViniGodoy
ihorran:
Entendi… acho que vou deixar uma jInternalFrame e a outra chamar uma JFrames menor, deve funcionar.
Muito obrigado!
No caso, uma JDialog menor. E com a propriedade setModal(true).
I
ihorran
ViniGodoy:
ihorran:
Entendi… acho que vou deixar uma jInternalFrame e a outra chamar uma JFrames menor, deve funcionar.
Muito obrigado!
No caso, uma JDialog menor. E com a propriedade setModal(true).
Ok… ficou melhor com a JDialog mesmo. agora posso continuar o meu projeto. Grato
Anime
ihorran:
Anime:
Oi,
Seu projeto é Web ou Desktop?
Desktop…
Só percebi agora, mas fico feliz por ter resolvido…