Como Fechar JFrames. Preciso de ajuda (Projeto Final)!

8 respostas
S

Bom dia galera,
Tô precisando muito de ajudacom o seguinte problema ...
tenho um JFrame de cadastro de clientes... e nele um botão
que abre uma "outro JFrame" com a relação de clientes já cadastrados dentro de uma Table e um botão "ok" para que eu possa escolher algum cliente dentro da Table.
O meu problema como fazer para que esse 2° JFrame reconheça o 1° JFrame (Cadastro de clientes ) aberto anteriormente para que eu possa fecha-lo no clique do botão "ok".

o código (resumido) é esse :

JFrame cadastro de clientes :

public class CadastroJuridico extends javax.swing.JFrame {

...

 public CadastroJuridico() {
       super( "Cadastro de Cliente Juridico" );
   


...

    private void btnPesquisarActionPerformed(java.awt.event.ActionEvent evt) {                                             
            ListarClienteJuridico lff = new ListarClienteJuridico( );
            lff.setBounds( 0, 0, 400, 300 );
            lff.setVisible( true );
            
    }                                            

...
JFrame lista de clientes
public class ListarClienteJuridico extends JFrame 
{
    JButton ok, sair;
    JTable tabela;
    CadastroJuridico cju = new CadastroJuridico();
  
    public ListarClienteJuridico( Object ju )
    {
        super( "Lista de Cliente Juridico" );
        
        tabela = Dao.listarPessoaJuridica(ju);
              
        tabela.setRowHeight( 20 );
        tabela.setSelectionMode( ListSelectionModel.SINGLE_SELECTION );
        tabela.setFont( new Font( "Arial", Font.BOLD, 14 ) );
        tabela.getColumnModel().getColumn(0).setHeaderValue("Código"); 
        tabela.getColumnModel().getColumn(1).setHeaderValue("Descrição");               
        
        getContentPane().setLayout( new BorderLayout() );
        
        JScrollPane scroll = new JScrollPane( tabela );
                
        ok = new JButton( "OK" );
        sair = new JButton( "Sair" );
        
        OuvinteBotao ouvinte = new OuvinteBotao();
        ok.addActionListener( ouvinte );
        sair.addActionListener( ouvinte );
        JPanel panel = new JPanel();
        panel.add( ok );
        panel.add( sair );
        
        getContentPane().add( scroll, BorderLayout.CENTER );
        getContentPane().add( panel, BorderLayout.SOUTH );
        
        pack();
    }
    
    
    private class OuvinteBotao implements ActionListener
    {
        public void actionPerformed( ActionEvent evento )
        {
            if (evento.getSource() == sair )
            {
            setVisible(false);    
            CadastroJuridico cju = new CadastroJuridico();
            cju.setBounds (0,0,600,600);
            cju.setVisible( true );
            }
            if( evento.getSource() == ok )
            {
                int linhaSelecionada = tabela.getSelectedRow();
                if( linhaSelecionada != -1 )
                {
                    setVisible( false );
                    Long index = (Long) tabela.getValueAt( linhaSelecionada, 0 );
                    linhaSelecionada = index.intValue();
                    Juridica j = null;
                    Cliente cli= null;
                    
                    cli = Dao.pesquisarCliente( linhaSelecionada );
                    j = Dao.pesquisarListaJuridica(linhaSelecionada );
                    System.out.println("linha selecionada"+ linhaSelecionada);
                    System.out.println("na classe j" + j.getCodjuridico());
                    
                    
                    CadastroJuridico cju = new CadastroJuridico( j, cli ); 
                    cju.setBounds (0,0,600,600);
                    cju.setVisible( true );
                    
                }
                else
                {
                    JOptionPane.showMessageDialog(null,"Por favor, selecionar produto" );
                }
                }
               
            }
            
        }
       
        
    }

Agradeço muito se alguém puder me ajudar , esse projeto é para quinta !

8 Respostas

fabim

uai sô, passa o primeiro frame como parametro pro segundo…

–> na class ListarClienteJuridico

private JFrame owner = null;

public ListarClienteJuridico( Object ju, JFrame owner ) {

...
 this.owner = owner;

}

pronto agora tu tem uma referência pro seu 1º Frame dentro da classe do 2º frame, ai tu faz o que quiser com ele =P

S

meu camarada agradeço sua ajuda
mas sem querer abusar…
como faria para fechar o 1° Frame usando o botão “ok” que está no segundo ?

D

frame.setVisible(false);

fabim

ou…

frame.dispose();

S

meu amigo, valeu pela ajuda …
tô no trabalho e não vou poder testar agora …
daqui a pouco posto o resultado …

Novamente muito obrigado !

S

desculpe a minha ignorância…

mas como vou fazer para passar a classe cadastroJuridico
por parametro no botão pesquisar

palavra = String.valueOf(txtRazao.getText().trim().toUpperCase());
            ListarClienteJuridico lff = new ListarClienteJuridico(palavra,???);
            lff.setBounds( 0, 0, 400, 300 );
            lff.setVisible( true );
fabim

new ListarClienteJuridico(palavra, this);

this é uma palavra reservada que faz referência a própria classe.

obs.:

se vc estiver usando classe interna pra manipular o evento, alguma coisa do tipo:

botao.addActionListener( new ActionListener() {

   public void actionPerformed(ActionEvent evt) {
   }

});

Então vai mudar um pokim… em vez de “this”, vc vai usar o nome da classe, “.” e this.

“this” entao vira “CadastroJuridico.this”;

S

Funcionou perfeito !
Valeu mesmo meu camarada!

Criado 26 de junho de 2007
Ultima resposta 26 de jun. de 2007
Respostas 8
Participantes 3