[RESOLVIDO]action event

Estou desenvolvendo um exercicio para aula de java,no qual criei 2 janelas e chamei elas no método principal,agora na hora de dar uma ação para um dos botões,eu clico nele e nada acontece…segue o codigo,o que está errado?

[code]public class Clt extends Frame implements ActionListener {

private Label lb1, lb2, lb3, lb4, lb5, lb6;
private TextField txt1, txt2, txt3, txt4, txt5, txt6;
private Button jb1, jb2;
private Panel pBot, pTxt;
private Celetista cel;

public Clt() {
    super("Folha de Pagamento");//titulo da janela//
    setSize(400, 400);//tamanho da janela//


    lb1 = new Label("Nome");//criando os textos e instanciando//
    txt1 = new TextField(20);
    lb2 = new Label("Endereço");
    txt2 = new TextField(20);
    lb3 = new Label("Telefone");
    txt3 = new TextField(20);
    lb4 = new Label("Rg");
    txt4 = new TextField(20);
    lb5 = new Label("Cpf");
    txt5 = new TextField(20);
    lb6 = new Label("Valor por hora");
    txt6 = new TextField(20);
    jb1 = new Button("Salvar");//criando botoes e instanciando//        
    jb2 = new Button("Calcular Pagamento");

    pTxt = new Panel(new GridLayout(12, 1));//criou o painel//
    pTxt.setBackground(Color.lightGray);
    pTxt.add(lb1);
    pTxt.add(txt1);
    pTxt.add(lb2);
    pTxt.add(txt2);
    pTxt.add(lb3);
    pTxt.add(txt3);
    pTxt.add(lb4);
    pTxt.add(txt4);
    pTxt.add(lb5);
    pTxt.add(txt5);
    pTxt.add(lb6);
    pTxt.add(txt6);
    add(pTxt, BorderLayout.CENTER);


    pBot = new Panel(new GridLayout(1, 2));
    pBot.setBackground(Color.lightGray);
    pBot.add(jb1);
    pBot.add(jb2);
    add(pBot, BorderLayout.SOUTH);

}

 public void actionPerformed(ActionEvent event) {
    if (event.getSource() == jb2) {

        int horasTrabalhadas = -1;
        do {

            String horasTrabalhadasStr = JOptionPane.showInputDialog(null,
                    "Informe o numero de horas trabalhadas");
            if (horasTrabalhadasStr != null) {
                horasTrabalhadas = Integer.parseInt(horasTrabalhadasStr);
            }
        } while (horasTrabalhadas < 0);

        double valHora = 0;

        valHora = Double.parseDouble(txt6.getText());
        cel.valorHora = valHora;

        cel.calcHoraExtra();
        cel.calcIrrf();
        cel.calcInss();

        System.out.println(cel.calcHoraExtra());
        System.out.println(cel.calcIrrf());
        System.out.println(cel.calcIrrf());

[/code]

Cara, vc tem que adcionar a ActionEvent ao seu JButton, algo desse jeito :

    jd2.addActionListener(this);

[quote=ddenis3526] Cara, vc tem que adcionar a ActionEvent ao seu JButton, algo desse jeito :

[code]
jd2.addActionListener(this);

[/code][/quote]

Eu recomendo criar uma classe interna para tratar as action’s dos botões exmplo:

   private class Action implements ActionListener{

        public void actionPerformed(ActionEvent event) {  
                      
                   if(e.getSource == yourComponent){ }

        }

   }

e na sua classe que extends o JFrame faça assim

   //Declaracao na classe
   private Action acao = new Action();
   
   //Construtor etc...
   button.addActionListener(acao);

Essa tal classe interna é dentro da mesma classe que extends o JFrame? Ta complicado aqui ne no X fecha a janela tem que fechar naquele “running” do netbeans que fica no canto da tela :frowning:

Sim. no seu caso ficara algo assim

    public class suaTela extends Frame{
     
    //Referencias dos objetos
    Action  acao = new Action();

     public  suaTela (){
       button = new Button();
       button.addActionListener(acao);
      }
    
     private class Action implements ActionListener{

     //ActionPerforma...
     }

    }

Brother segui os passos deu certo,obrigado!

O unico problema é que nao fecha clicando no “X”…

O problema agora vai ser com os codigos rsrs

[quote=filipi]Brother segui os passos deu certo,obrigado!

O unico problema é que nao fecha clicando no “X”…

O problema agora vai ser com os codigos rsrs[/quote]

De nada :S