Controle de gastos

preciso fazer um exercicio para controle de gastos e para isso preciso cadastrar meses o salarios os impostos os gastos e calcular os saldos,isso em uma interface grafica e colocar um botão para cadastrar outro para exibir a media e outro para exibir o maior saldo e os dados do mes em que o saldo foi maior e depois mostrar todos os meses com seus dados .
Por favor me ajudem os dois ultimos botôes não estão dando erro mas não acontece nada

import javax.swing.;
import java.awt.
;
import java.awt.event.*;
public class exec06 extends JApplet {
JLabel lblm,lbls,lblg,lbli;
JTextField txtm,txts,txtg,txti;
JButton btnm,btnc,btne,btnca;
Mes m[]=new Mes[50];
int cont=0;
public void init(){
Container c=getContentPane();
c.setLayout(null);
Handler obj=new Handler();
lblm=new JLabel();
lblm.setText(“Mês”);
lblm.setBounds(40,40,60,30);
c.add(lblm);
lbls=new JLabel();
lbls.setText(“Salário”);
lbls.setBounds(80,40,60,30);
c.add(lbls);
lblg=new JLabel();
lblg.setText(“Gastos”);
lblg.setBounds(120,40,60,30);
c.add(lblg);
lbli=new JLabel();
lbli.setText(“Impostos”);
lbli.setBounds(160,40,60,30);
c.add(lbli);
btnm=new JButton();
btnm.setText(“Maior Saldo”);
btnm.setBounds(200,40,100,30);
btnm.addActionListener(obj);
c.add(btnm);
btnc=new JButton();
btnc.setText(“Média Sálarios”);
btnc.setBounds(200,40,100,30);
btnc.addActionListener(obj);
c.add(btnc);
btne=new JButton();
btne.setText(“Saldos”);
btne.setBounds(300,40,100,30);
btne.addActionListener(obj);
c.add(btne);
btnca=new JButton();
btnca.setText(“Cadastrar dados”);
btne.setBounds(400,40,100,30);
btnca.addActionListener(obj);
c.add(btnca);
txtm=new JTextField();
txtm.setBounds(20,40,60,30);
c.add(txtm);
txts=new JTextField();
txts.setBounds(60,40,60,30);
c.add(txts);
txtg=new JTextField();
txtg.setBounds(100,40,60,30);
c.add(txtg);
txti=new JTextField();
txti.setBounds(140,40,60,30);
c.add(txti);
setVisible(true);

    }
	public class Handler implements ActionListener{
		double sa,gas,im,me,maior=0;
		String rel="",saida="";
		int i,
		public void ActionPerformed(ActionEvent e){
			if(e.getSourca()==btnca){
				Mes aux=new Mes();
				aux.setNome(txtm.getText());
				sa=Double.parseDouble(txts.getText());
				aux.setSalario(sa);
				gas=Double.parseDouble(txtg.getText());
				aux.setSalario(gas);
				im=Double.parseDouble(txti.getText());
				aux.setSalario(im);
				m[cont]=aux;
				media=media+aux.getSalario()/cont;
				saida="mes"+aux.getNome()+"\nSalario"+aux.getSalario()+"\nImpostos"+aux.getImpostos()+"\nSalario"+aux.getSalario()+"\nGAstos"aux.getSalario()+aux.Saldo();
				if(aux.Saldo>maior){
					maior=aux.Saldo();
					rel="mes"aux.getNome()+"\nSaldo"+aux.getSaldo()+"\nImposto"+aux.getImpostos()+"\nSalario"+aux.getSalario()+"\nGAstos"aux.getSalario()+maior;                      
				}
				

				cont++;
				if(e.getSource()==btne){
					JOptionPane.showMessageDialog(null,saida);
				}
				if(e.getSource()==btnm){
					JOptionPane.showMessageDialog(null,rel);
				}
				if(e.getSource()==btnc){
					JOptionPane.showMessageDialog(null,media);
				}

			   
				
			}

			
		}
	}
}[list=][/list][/code]

Na hora q vc for colocar algum código, utilize os formatadores BBCode, fica bem mais legível. :grin:
Acontece algum erro ou simplesmente não aparece nada?

Abraços