Estopu trabalhando com JFrame e JInternalFrames mas infelizmente não consigo fazer o JInternalFrame ser modal. Tentei então utilizar o JDialog, mas não consigo adiciona-lo ao JDesktopPane… alguém possui algum exemplo de como chamar um JDialog e coloca-lo dentro do JDesktopPane?
Você saberia como faço pra chamar o JDialog dentro do JDesktopPane? Estou apanhando e até agora não consegui
Eu tenho um JFrame como MDI e através dele chamo vários JInternalFrames e nesses JInternalFrames quero chamar JDialogs, mas quero que sejam “modal” e que fiquem dentro da área do JDesktopPane (que está no JFrame).
apolo_kk
Putz cara, minha dúvida é a mesma da tua. Eu quero saber como adiciona um Jdialog no desktop, porque ja tentei passar por parâmetro o desktop mas não dá.
Ajuda a gente ae quem puder. Obrigado
ViniGodoy
Bem-vindos ao mundo das deficiências do Swing.
Não dá para fazer uma JInternalFrame modal, ponto. Existem alguns xunxos para emular esse comportamento, mas nenhum é perfeito. O primeiro é construir um GlassPane atrás de sua janela. A segunda é mexendo nos listeners. Dêem uma olhada no artigo: Creating Modal Internal Frames.
Particularmente, não recomendo nenhuma das duas abordagens.
O que tenho feito em meu sistema é o seguinte. Eu uso a JDialog e associo ela a janela que tem o DesktopPane. Ela não ficará dentro do DesktopPane (nem tudo é perfeito), mas a dor de cabeça é infinitamente menor do que o comportamento estranho gerado pelas alternativas acima (fora que manter um código daquela também é uma grande dor de cabeça). Além disso, eu altero a decoração do JDialog para ela parecer uma internal frame.
Para mudar a decoração (faço isso apenas no “Metal Look and Feel”), uso o seguinte código:
Class metal = javax.swing.plaf.metal.MetalLookAndFeel.class;
if ( UIManager.getLookAndFeel().getClass().equals(metal) ) {
setUndecorated(true);
getRootPane().setWindowDecorationStyle(JRootPane.PLAIN_DIALOG);
}
T
thingol
É por isso que patrocino a campanha “JDesktopPane e JInternalFrame fazem mal à saúde”.
G
Geraldo_Eliezer
Qual seria o problema em usar um JDialog associando ele à tela que tem o JDesktopPane?
V
vhprice
Boa noite,
Você conseguiu chegar a algum resultado com a sua aplicação? Pergunto pois estou no mesmo impasse ( inclusive postei um texto bem detalhado de um problema que estou tendo idêntico ao seu )…
Afinal, tem ou não tem como adicionar o JDialog dentro do JDesktopPane?