Remover um jButton do jPane

1 resposta
R

Ola

Estou desenvolvendo um sistema em java. Criei uma classe que faz o gerenciamento para abrir janelas e cria um jButton em um jPane que fica na tela principal, que serve para trocar entre janelas. Até ai tudo bem, está fazendo certo.
Queria uma forma de quando eu fechar a janela, no evento fechar ele remover o jButton… Como descobrir qual é o button a ser removido

Classe que gerencia as janelas

public class GerenciadorJanelas {

private static JDesktopPane jDesktopPane;
private static JPanel jPanel;
private JButton button;

public GerenciadorJanelas(JDesktopPane jDesktopPane , JPanel jPGerenciadorJanelas) {
    GerenciadorJanelas.jDesktopPane = jDesktopPane;
    GerenciadorJanelas.jPanel = jPGerenciadorJanelas;
  
}


public void abrirJanela(JInternalFrame jIF) {
    if (jIF.isVisible()) {
        jIF.toFront();
        jIF.requestFocus();
        //button.setName(jIF.getTitle());
       // button.setFocusable(true);
    } else {
        jDesktopPane.add(jIF);
        jIF.setVisible(true);
        constroirButton(jIF);
    }
}

//Adiciona um botão no panel de gerenciador de janelas na tela principal
private void constroirButton(JInternalFrame jIF) {
    FlowLayout layout = new FlowLayout();
    jPanel.setLayout(layout); 
    jPanel.add(button = new JButton());
    layout.setAlignment(FlowLayout.LEFT);
    button.setText(jIF.getTitle());
    button.setName(jIF.getTitle());
    button.setVisible(true);
}

    public void fecharJanela(JInternalFrame jIF) {
       //jPanel.remove(button);
FALTA IMPLEMENTAR ESSE METODO, COMO DESCOBRIR O BUTTON QUE POSSUI O NOME QUE FOI DADO A ELE NO METODO ACIMA(TITULO DA JANELA)???

    }
}

Ação do de um menu na tela principal

private void jMenuItem1ActionPerformed(java.awt.event.ActionEvent evt) {                                           
        gerenciadorJanelas.abrirJanela(CadUnidadeView.getIntancia());
    }

Ação fechar da janela

private void formInternalFrameClosed(javax.swing.event.InternalFrameEvent evt) {                                         
       gerenciadorJanelas.fecharJanela(CadUsuarioView.getIntancia());
    }

1 Resposta

R

Olá a todos. Alguem teria alguma solução

Criado 24 de agosto de 2016
Ultima resposta 26 de ago. de 2016
Respostas 1
Participantes 1