[RESOLVIDO] Chamar tela no JDesktopPanel

Pessoal, estou usando uma classe para chamar uma imagem em um desktoppanel, até ai tudo bem… ele chama meu menu normal, chama minhas telas e tudo mais, mas o problema é quando eu tento chamar um JInternalFrame dentro de outro JInternalFrame onde não estou conseguindo.

Segue código:

public class FundoTela extends JDesktopPane {
    private Image imagem;

public FundoTela(String imagem)   {
    this.imagem = new ImageIcon(TelaPrincipalMDI.class.getResource(imagem)).getImage();
} 

@Override
public void paintComponent(Graphics g){
    g.drawImage(imagem, 0, 0, getWidth(), getHeight(), this);
}
    
}

e na minha tela principal:

FundoTela tela;

setExtendedState(MAXIMIZED_BOTH);
setLayout(new GridLayout());
tela = new FundoTela("/images/fundo-11.jpg");
getContentPane().add(tela);

@Lucas16

Para chamar um JInternalFrame, na sua JDesktopPanel, você deve instanciá-la e depois setar sua exibição:

SuaTela tela = new SuaTela();
SuaDesktopPanel.add(tela);
tela.setvisible(true);

Espero que lhe ajude! Bons Estudos.

Bom dia Sergio, tudo bom? Então… como vc pode ver no meu código, eu adicionei uma DesktopPAnel através da classe. e quando chamo pela minha tela principal da certo, mas o problema é quando eu chamo uma tela através da tela principal e depois chamo uma outra tela através da tela anterior que chamei

Exemplo: Tenho 3 telas, Principal, Tela 2 e Tela 3. Quando chamo a Tela 2 através da principal da certo, mas quando chamo e Tela 3 através da Tela 2, não dá

@Lucas16

O Seu JinternalFrame pode chamar o outro JInternalFrame dessa forma:


frame2 tela2 = new frame2();
    getParent().add(tela2);
    tela2.setvisible(true);

deu

consegui, era a letra q estava errado. obrigado brother

tem como eu setar ela no centro da tela?

Você pode colocar esse método em cada JinternalFrame:

public void setPosicao() {
    Dimension d = this.getDesktopPane().getSize();
    this.setLocation((d.width - this.getSize().width) / 2, (d.height - this.getSize().height) / 2); }
}

depois chamá-lo

frame2 tela2 = new frame2();
    getParent().add(tela2);
    tela2.setvisible(true);
    tela2.setPosicao();

:sunglasses: - Se tiver solucionado o Seu problema, Edita o seu titulo e antes do titulo escrito você coloca o [RESOLVIDO] para ficar mais organizado os post ok?

Abraços… Qualquer dúvida estamos por aqui!

Deu haha

muito obrigado