[RESOLVIDO]action event

6 respostas
filipi
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?
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());

6 Respostas

ddenis3526

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

jd2.addActionListener(this);
ddenis3526
ddenis3526:
Cara, vc tem que adcionar a ActionEvent ao seu JButton, algo desse jeito :
jd2.addActionListener(this);
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);
filipi

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:

ddenis3526

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...
     }

    }
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

ddenis3526

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

De nada :S

Criado 3 de outubro de 2012
Ultima resposta 3 de out. de 2012
Respostas 6
Participantes 2