Problema com Eventos

2 respostas
P

Ola pessoal,

Gostaria de saber onde estou errando no meus codigos ?

Quero que , quando eu clicar no botão sair, feche a janela.

Quando eu clicar no botao, limpar, limpe a janela.

Aqui é a janela:

package visao;
     
    import javax.swing.JLabel;
    import javax.swing.JFrame;
    import javax.swing.JPanel;
    import javax.swing.JPasswordField;
    import java.awt.event.ActionListener;
    import javax.swing.JTextField;
    import javax.swing.JButton;
    public class ClienteGUI extends JFrame{
     
     
        private static final long serialVersionUID = 1L;
        public JLabel codigoCliente, nomeCompleto, endereco, bairro, cidade, estado, cep, sexo, celular, telefone,
                 dataAniversario, dataCadastro;
        public JPanel painel;
        public JTextField nome, enderec, bairr, cidad, estad, ce, sex, celul, telefon, datAniversario, datCadastro;
        public JPasswordField codigoClient;
        public JButton incluir, limpar, sair, consultar, consultarTodos;
       
        public ClienteGUI(){
       
           
         setBounds(200,100,800,600);
         setTitle("Cadastro de Cliente");
         codigoCliente = new JLabel("Codigo do Cliente");          codigoClient = new JPasswordField();    incluir = new JButton("Incluir");
         nomeCompleto = new JLabel("Nome Completo");               nome = new JTextField();                limpar = new JButton("Limpar");
         endereco = new JLabel("Endereço");                        enderec = new JTextField();             sair = new JButton("Sair");
         bairro = new JLabel("Bairro");                            bairr = new JTextField();               consultar = new JButton("Consultar");
         cidade = new JLabel("Cidade");                            cidad = new JTextField();        consultarTodos = new JButton("Consultar Todos");
         estado = new JLabel("Estado");                            estad = new JTextField();
         cep = new JLabel("C.E.P");                                ce = new JTextField();
         sexo = new JLabel("Sexo");                                sex = new JTextField();
         celular = new JLabel("Celular");                          celul = new JTextField();
         telefone = new JLabel("Telefone");                        telefon = new JTextField();
         dataAniversario = new JLabel("Data do Aniversário");      datAniversario = new JTextField();
         dataCadastro = new JLabel("Data de Cadastro");            datCadastro = new JTextField();
         painel = new JPanel();                    
         painel.setLayout(null);
         add(painel);
         painel.add(codigoCliente,null);                           painel.add(codigoClient);              painel.add(incluir);
         painel.add(nomeCompleto,null);                            painel.add(nome);                      painel.add(limpar);
         painel.add(endereco,null);                                painel.add(enderec);                   painel.add(sair);
         painel.add(bairro,null);                                  painel.add(bairr);                     painel.add(consultar);
         painel.add(cidade,null);                                  painel.add(cidad);                     painel.add(consultarTodos);
         painel.add(estado,null);                                  painel.add(estad);
         painel.add(cep,null);                                     painel.add(ce);
         painel.add(sexo,null);                                    painel.add(sex);
         painel.add(celular,null);                                 painel.add(celul);
         painel.add(telefone,null);                                painel.add(telefon);
         painel.add(dataAniversario,null);                         painel.add(datAniversario);
         painel.add(dataCadastro,null);                            painel.add(datCadastro);
         codigoCliente.setBounds(20, 30, 100, 20);            codigoClient.setBounds(150, 30, 100, 20);      incluir.setBounds(20, 390, 100, 20);
         nomeCompleto.setBounds(20, 60, 100, 20);             nome.setBounds(150, 60, 100, 20);              limpar.setBounds(140, 390, 100, 20);
         endereco.setBounds(20, 90, 100, 20);                 enderec.setBounds(150, 90, 100, 20);       sair.setBounds(250, 390, 100, 20);
         bairro.setBounds(20, 120, 100, 20);                  bairr.setBounds(150, 120, 100, 20);        consultar.setBounds(20, 420, 100, 20);
         cidade.setBounds(20, 150, 100, 20);                  cidad.setBounds(150, 150, 100, 20);        consultarTodos.setBounds(140, 420, 150, 20);
         estado.setBounds(20, 180, 100, 20);                  estad.setBounds(150, 180, 100, 20);
         cep.setBounds(20, 210, 100, 20);                     ce.setBounds(150, 210, 100, 20);
         sexo.setBounds(20, 240, 100, 20);                    sex.setBounds(150, 240, 100, 20);
         celular.setBounds(20, 270, 100, 20);                 celul.setBounds(150, 270, 100, 20);
         telefone.setBounds(20, 290, 100, 20);                telefon.setBounds(150, 290, 100, 20);
         dataAniversario.setBounds(20, 320, 120, 20);         datAniversario.setBounds(150, 320, 100, 20);
         dataCadastro.setBounds(20, 350, 100, 20);            datCadastro.setBounds(150, 350, 100, 20);
         setLocationRelativeTo(null);
         setResizable(false);
         setVisible(true);
         this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        }
        public void adicionarOuvinte(ActionListener ouvinte){
           
            this.sair.addActionListener(ouvinte);
            this.limpar.addActionListener(ouvinte);
            this.codigoClient.addActionListener(ouvinte);
        }
        public void limpaCampos(){
           
            nome.setText("");
            enderec.setText("");
            bairr.setText("");
            cidad.setText("");
            estad.setText("");
            ce.setText("");
            sex.setText("");
            celul.setText("");
            telefon.setText("");
            datAniversario.setText("");
            datCadastro.setText("");
            codigoClient.setText("");
     
        }
    }

Aqui é Classe que controla a janela ClienteGUI.

package controle;
 
import visao.ClienteGUI;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
 
public class IncluirClienteControle {
 
    public ClienteGUI guiCli;
   
    public IncluirClienteControle(){
       
       
        guiCli = new ClienteGUI();
       
        guiCli.adicionarOuvinte(new OuvinteIncluir());
       
       
    }
    class OuvinteIncluir implements ActionListener{
       
        public void actionPerformed(ActionEvent evt){
           
            Object source = evt.getSource();
           
            if(source == guiCli.sair)
            {
                System.exit(0);
            }
            else
            if(source == guiCli.limpar)
            {
                 guiCli.limpaCampos();
            }
           
        }
   
    }
   
}

2 Respostas

drsmachado

Em primeiro lugar, NÃO COLOQUE CAIXA ALTA NOS TÍTULOS DOS TÓPICOS.
Isto apenas polui e afasta a maioria dos usuários.
Segundo, não exija respostas rápidas, urgência, compaixão ou o que for, pelos mesmos motivos.
Terceiro, teu tópico não tem nenhuma lógica.
Eu também quero ganhar R$ 100 mil por mês, mas não sei onde estou errando…

Seja claro nas perguntas, forneça informações, diga o que está acontecendo, onde, qual a linha, qual a ação e em que momento o erro/problema/dúvida acontece.

Assim fica mais fácil de ter uma resposta, rápida e direta.

ViniGodoy

Você poderia começar organizando seu código:

  1. Crie um ouvinte para cada tipo de ação (isso evita ficar testanto o souce com ==);
  2. Se ainda assim precisar testar o source, passe o ClienteGUI como parâmetro para o ouvinte. Caso contrário, você terá uma cópia de sua interface dentro de ouvinte, e os testes com == nunca irão ser bem sucedidos;
  3. Sempre que tiver dúvidas assim, use um depurador.
Criado 19 de junho de 2011
Ultima resposta 19 de jun. de 2011
Respostas 2
Participantes 3