Calculadora con Java Swing

public class Menu2  extends JFrame implements ActionListener{
private JTextField operando1, operando2, resultado;
private JButton factorial, sumatorio, fibonacci, potencia, cerrar, acerca;
private JLabel titulo, texto1, texto2, result;
public Menu2(){
setLayout(null);
//text fields
operando1 = new JTextField();
operando1.setBounds(100,100,100,20);
add(operando1);

operando2 = new JTextField();
operando2.setBounds(100,140,100,20);
add(operando2);

resultado = new JTextField();
resultado.setBounds(100,180,100,20);
add(resultado);

//buttons
factorial = new JButton("Factorial");
factorial.setBounds(220,100,100,50);
add(factorial);
factorial.addActionListener(this);

sumatorio = new JButton("Sumatorio");
sumatorio.setBounds(220,160,100,50);
add(sumatorio);
sumatorio.addActionListener(this);

fibonacci = new JButton("Fibonacci");
fibonacci.setBounds(220,220,100,50);
add(fibonacci);
fibonacci.addActionListener(this);

potencia = new JButton("Potencia");
potencia.setBounds(220,280,100,50);
add(potencia);
potencia.addActionListener(this);

cerrar = new JButton("Cerrar");
cerrar.setBounds(100,220,100,50);
add(cerrar);
cerrar.addActionListener(this);

acerca = new JButton("acerca");
acerca.setBounds(100,280,100,50);
add(acerca);
acerca.addActionListener(this);

//labels
titulo = new JLabel("Menu");
titulo.setBounds(130,40,200,30);
titulo.setForeground(Color.blue);
add(titulo);


texto1 = new JLabel("Primer Valor:");
texto1.setBounds(10,95,200,30);
texto1.setForeground(Color.black);
add(texto1);

texto2 = new JLabel("Segundo Valor:");
texto2.setBounds(10,135,200,30);
texto2.setForeground(Color.black);
add(texto2);

result = new JLabel("Resultado:");
result.setBounds(10,170,200,30);
result.setForeground(Color.blue);
add(result);


}
public static void main(String[] args) {
// TODO Auto-generated method stub
Menu2 ope = new Menu2();
ope.setBounds(480,190,400,400);
ope.setResizable(false);
ope.setVisible(true);

}
@Override
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
if(e.getSource()==factorial){
String oper1 = operando1.getText();
int num1 = Integer.parseInt(oper1);
int resul = factorialRecursivo(num1);
String total = String.valueOf(resul);
resultado.setText(total);
}
if(e.getSource()==sumatorio){
String oper1 = operando1.getText();
int num1 = Integer.parseInt(oper1);
int resul = Sumatorio(num1);
String total = String.valueOf(resul);
resultado.setText(total);
}
if(e.getSource()==fibonacci){
String oper1 = operando1.getText();
int num1 = Integer.parseInt(oper1);
int resul = Fibonnaci(num1);
String total = String.valueOf(resul);
resultado.setText(total);
}
if(e.getSource()==potencia){
String oper1 = operando1.getText();
int num1 = Integer.parseInt(oper1);
String oper2 = operando2.getText();
int num2 = Integer.parseInt(oper2);
int resul = Potencia(num1, num2);
String total = String.valueOf(resul);
resultado.setText(total);
}
if(e.getSource()==cerrar){
System.exit(0);
}
if(e.getSource()==acerca){
JOptionPane.showMessageDialog(null, "Calculadora");
}
}


//metodos recursivos
public static int factorialRecursivo (int n){
if(n==0){
return 1;
}else{
return n*(factorialRecursivo(n-1));
}

}
public static int Fibonnaci( int n){
if(n==1||n==2){
return 1;
}else{
return (Fibonnaci(n-1)+Fibonnaci(n-2));
}
}
public static int Potencia (int b, int e){
if (e==0){
return 1;
}
else{
return b*(Potencia(b, e-1));
}
}
public static int Sumatorio(int n){
if(n==0){
return 0;
}else{
return n+(Sumatorio(n-1));
}
}

}