Pq meus botões não funcionam?

3 respostas
Z

Aperto e nada acontece... Alguem pode me ajudar ? São apenas 2 classes

import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.*;

public class SistemaDeNotas extends JFrame implements ActionListener
 {
  private static final long serialVersionUID = 1L;
  private JPanel panel1,panel2,panel3;
  private JButton b1,b2,b3;
  private JTextField t1,t2,t3,t4,t5,t6,t7,t8,t9;
  SistemaDeNotas()
  {
   super("Sistema de notas");
   Container c = getContentPane();
   
   panel1= new JPanel();
   panel1.setLayout(new GridLayout(1,1));
   JLabel l0 = new JLabel("Sistema de Notas");
   l0.setFont(new Font("Serif",Font.ITALIC,20));
   panel1.add(l0);
   c.add(panel1,BorderLayout.NORTH);

   panel2 = new JPanel();
   panel2.setLayout(new GridLayout(9,2));
   JLabel l1 = new JLabel("Disciplina");
   JTextField t1 = new JTextField();
   JLabel l2 = new JLabel("Professor");
   JTextField t2 = new JTextField();
   JLabel l3 = new JLabel("Período");
   JTextField t3 = new JTextField();
   JLabel l4 = new JLabel("Aluno(a)");
   JTextField t4 = new JTextField();
   JLabel l5 = new JLabel("1 nota");
   JTextField t5 = new JTextField();
   JLabel l6 = new JLabel("2 nota");
   JTextField t6 = new JTextField();
   JLabel l7 = new JLabel("3 nota");
   JTextField t7 = new JTextField();
   JLabel l8 = new JLabel("Média");
   JTextField t8 = new JTextField();
   JLabel l9 = new JLabel("Situação");
   JTextField t9 = new JTextField();
   t8.setEditable(false);
   t9.setEditable(false);
   panel2.add(l1);panel2.add(t1);
   panel2.add(l2);panel2.add(t2);
   panel2.add(l3);panel2.add(t3);
   panel2.add(l4);panel2.add(t4);
   panel2.add(l5);panel2.add(t5);
   panel2.add(l6);panel2.add(t6);
   panel2.add(l7);panel2.add(t7);
   panel2.add(l8);panel2.add(t8);
   panel2.add(l9);panel2.add(t9);
   c.add(panel2,BorderLayout.CENTER);
  
   panel3 = new JPanel(); 
   panel3.setLayout(new GridLayout(1,3));
   JButton b1 = new JButton("Média");
   JButton b2 = new JButton("Situaçao");
   JButton b3 = new JButton("Limpar");
   panel3.add(b1);panel3.add(b2);panel3.add(b3);
   c.add(panel3,BorderLayout.SOUTH);

   b1.addActionListener(this);
   b2.addActionListener(this);
   b3.addActionListener(this);
   c.setSize(425, 100);
   pack();
   setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
   setVisible(true);
  } 

  public void actionPerformed(ActionEvent e)
  {
   double s;
   if(e.getSource()==b1) 
   {
	s = Double.parseDouble(t5.getText())+
	Double.parseDouble(t6.getText())+
	Double.parseDouble(t7.getText());
    t8.setText(Double.toString(s)); 
   } 
   else if(e.getSource()==b2)
   {
	if (Double.parseDouble(t8.getText())<5) t9.setText("Reprovado"); 
	if (((Double.parseDouble(t8.getText())<5)) && (Double.parseDouble(t8.getText())<7))
	 t9.setText("Recuperação");
	if (Double.parseDouble(t8.getText())<7) t9.setText("Aprovado");
   } 
   else if (e.getSource()==b3)
   {   
	t1.setText("");t2.setText("");t3.setText("");
	t4.setText("");t5.setText("");t6.setText("");
	t7.setText("");t8.setText("");t9.setText("");
   }
  }
  public static void main(String args[]){SistemaDeNotas sis = new SistemaDeNotas();} 
}
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.*;

public class SistemaDePagamento extends JFrame implements ActionListener
 {
  private static final long serialVersionUID = 1L;
  private JPanel panel1,panel2,panel3;
  private JButton b1,b2;
  private JTextField t1,t2,t3,t4,t5,t6,t7,t8,t9,t10;
  SistemaDePagamento()
  {
   super("Sistema de pagamento");
   Container c = getContentPane();
   
   panel1= new JPanel();
   panel1.setLayout(new GridLayout(1,1));
   JLabel l0 = new JLabel("Sistema de Pagamento");
   l0.setFont(new Font("Serif",Font.ITALIC,20));
   panel1.add(l0);
   c.add(panel1,BorderLayout.NORTH);

   panel2 = new JPanel();
   panel2.setLayout(new GridLayout(10,2));
   JLabel l1 = new JLabel("Nome");
   JTextField t1 = new JTextField();
   JLabel l2 = new JLabel("Salário");
   JTextField t2 = new JTextField();
   JLabel l3 = new JLabel("Periculosidade");
   JTextField t3 = new JTextField();
   JLabel l4 = new JLabel("Tempo de serviço");
   JTextField t4 = new JTextField();
   JLabel l5 = new JLabel("Hora extra");
   JTextField t5 = new JTextField();
   JLabel l6 = new JLabel("Total de vencimentos");
   JTextField t6 = new JTextField();
   JLabel l7 = new JLabel("Salário líquido");
   JTextField t7 = new JTextField();
   JLabel l8 = new JLabel("INSS");
   JTextField t8 = new JTextField();
   JLabel l9 = new JLabel("Imposto retido");
   JTextField t9 = new JTextField();
   JLabel l10 = new JLabel("FGTS");
   JTextField t10 = new JTextField();
   t6.setEditable(false);
   t7.setEditable(false);
   t8.setEditable(false);
   t9.setEditable(false);
   t10.setEditable(false);
   panel2.add(l1);panel2.add(t1);
   panel2.add(l2);panel2.add(t2);
   panel2.add(l3);panel2.add(t3);
   panel2.add(l4);panel2.add(t4);
   panel2.add(l5);panel2.add(t5);
   panel2.add(l6);panel2.add(t6);
   panel2.add(l7);panel2.add(t7);
   panel2.add(l8);panel2.add(t8);
   panel2.add(l9);panel2.add(t9);
   panel2.add(l10);panel2.add(t10);
   c.add(panel2,BorderLayout.CENTER);
  
   panel3 = new JPanel(); 
   panel3.setLayout(new GridLayout(1,2));
   JButton b1 = new JButton("Calcular");
   JButton b2 = new JButton("Limpar");
   panel3.add(b1);panel3.add(b2);
   c.add(panel3,BorderLayout.SOUTH);

   b1.addActionListener(this);
   b2.addActionListener(this);
   c.setSize(425, 100);
   pack();
   setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
   setVisible(true);
  } 

  public void actionPerformed(ActionEvent e)
  {
   double bruto,desc_inss=0,desc_ir=0.0;	  
   if(e.getSource()==b1) 
   {
	//Bruto e total de vencimentos
	bruto = Double.parseDouble(t3.getText())+
	Double.parseDouble(t4.getText())+
	Double.parseDouble(t5.getText());
	t2.setText(Double.toString(bruto));
	t5.setText(Double.toString(bruto));
	//INSS
	if (bruto < 720) desc_inss=bruto*0.765;
	if ((bruto < 720) && (bruto < 1200)) desc_inss=bruto*0.09;
	if ((bruto < 1200.01) && (bruto < 2400)) desc_inss=bruto*0.11;
	if (bruto < 2400) desc_inss=bruto-264;
	t8.setText(Double.toString(desc_inss));
	//IR
	if (bruto < 1058) desc_ir=0;
	if ((bruto >= 1058) && (bruto < 2115)) desc_ir=(bruto*0.15)-157.7;
	if (bruto < 2115) desc_ir=(bruto*0.275)-423.08;
	t9.setText(Double.toString(desc_ir));
	//FGTS
	t10.setText(Double.toString(bruto*0.08));
	//Liquido
	t7.setText(Double.toString(bruto-desc_inss-desc_ir-Double.parseDouble(t4.getText())));
   }
   else if(e.getSource()==b2)
   {
	t1.setText("");t2.setText("");t3.setText("");t4.setText("");t5.setText("");
	t6.setText("");t7.setText("");t8.setText("");t9.setText("");t10.setText("");
   }
  }
  public static void main(String args[]){SistemaDePagamento sis = new SistemaDePagamento();}
}

3 Respostas

nana_ps

Oiee... Tudo bem??

Não deve tar entrando nesses ifs e elses if(e.getSource()==b)

tenta trocar essa parte:
b1.addActionListener(this);
por:
b1.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent ae) {
                                                                //aqui dentro vc tava o que o botão deve fazer 

				double bruto, desc_inss = 0, desc_ir = 0.0;
				bruto = Double.parseDouble(t3.getText())
						+ Double.parseDouble(t4.getText())
						+ Double.parseDouble(t5.getText());
				t2.setText(Double.toString(bruto));
				t5.setText(Double.toString(bruto));
				// INSS
				if (bruto < 720)
					desc_inss = bruto * 0.765;
				if ((bruto < 720) && (bruto < 1200))
					desc_inss = bruto * 0.09;
				if ((bruto < 1200.01) && (bruto < 2400))
					desc_inss = bruto * 0.11;
				if (bruto < 2400)
					desc_inss = bruto - 264;
				t8.setText(Double.toString(desc_inss));
				// IR
				if (bruto < 1058)
					desc_ir = 0;
				if ((bruto >= 1058) && (bruto < 2115))
					desc_ir = (bruto * 0.15) - 157.7;
				if (bruto < 2115)
					desc_ir = (bruto * 0.275) - 423.08;
				t9.setText(Double.toString(desc_ir));
				// FGTS
				t10.setText(Double.toString(bruto * 0.08));
				// Liquido
				t7.setText(Double.toString(bruto - desc_inss - desc_ir
						- Double.parseDouble(t4.getText())));
			}
		});

Faz isso em todos os botões, tira o "implements ActionListener" , a classe só ira extender do JFrame.
Se pedir para mudar para final dai vc muda.

xau.....

squall926

Ola!
fiquei curioso pra saber o porque desse codigo não funcionar…
Mas da forma acima colocado pelo nosso amigo, deve funcionar. Se alguem souber o porque do e.getSource() == Botãocriado não esta funcionado post ai!

Marck

Dentro do metodo construtor, você está declarando outros botões b1 e b2, ao invés de fazer dentro do construtor:

JButton b1 = new JButton("Calcular");
   JButton b2 = new JButton("Limpar");

Faça:

b1 = new JButton("Calcular");
   b2 = new JButton("Limpar");

Pois vc já os declarou antes.

Abraço!

Criado 8 de novembro de 2007
Ultima resposta 8 de nov. de 2007
Respostas 3
Participantes 4