Calculadora en Java Swing con JOptionPane

import javax.swing.JOptionPane;

public class SumaResta {

public static void main(String[] args) {
boolean seguir = true;
//todas las variabler que quiera usar dentro de switch las tendre que
//inicializar antes para que no me de error por que ya exista

while(seguir){
String opcion =
JOptionPane.showInputDialog( "Opciones:\n1-Suma\n2-Resta\n3-Multiplicacion\n4-Division\n5-Factorial\n6-Fibonnaci\n7-Potencia\n8-Sumatorio\n0-Salir\nPon tu opcion:");
switch(opcion){
case "1":
int suma=Integer.parseInt(JOptionPane.showInputDialog( "Introduzca el primer entero"))+Integer.parseInt(JOptionPane.showInputDialog( "Introduzca el segundo entero"));
JOptionPane.showMessageDialog(null, "La suma es "+ suma, "Suma de dos enteros", JOptionPane.PLAIN_MESSAGE);
break;
case "2":
int resta=Integer.parseInt(JOptionPane.showInputDialog( "Introduzca el primer entero"))-Integer.parseInt(JOptionPane.showInputDialog( "Introduzca el segundo entero"));
JOptionPane.showMessageDialog(null, "La resta es "+ resta, "Resta de dos enteros", JOptionPane.PLAIN_MESSAGE);
break;
case "3":
int mult = Integer.parseInt(JOptionPane.showInputDialog( "Introduzca el primer entero"))*Integer.parseInt(JOptionPane.showInputDialog( "Introduzca el segundo entero"));
JOptionPane.showMessageDialog(null, "La multiplicacion es "+ mult, "Multiplicacion de dos enteros", JOptionPane.PLAIN_MESSAGE);
break;
case "4":
double div = Integer.parseInt(JOptionPane.showInputDialog( "Introduzca el primer entero"))/Integer.parseInt(JOptionPane.showInputDialog( "Introduzca el segundo entero"));
JOptionPane.showMessageDialog(null, "La division es "+ div, "Division de dos enteros", JOptionPane.PLAIN_MESSAGE);
case "5":
JOptionPane.showMessageDialog(null, "El factorial es "+factorialRecursivo(Integer.parseInt(JOptionPane.showInputDialog( "Introduzca entero"))) , "Factorial", JOptionPane.PLAIN_MESSAGE);
break;
case "6":
JOptionPane.showMessageDialog(null, "El numero de Fibonnaci es "+Fibonnaci(Integer.parseInt(JOptionPane.showInputDialog( "Introduzca entero"))) , "Fibonnaci", JOptionPane.PLAIN_MESSAGE);
break;
case "7":
JOptionPane.showMessageDialog(null, "La potencia es "+Potencia(Integer.parseInt(JOptionPane.showInputDialog( "Introduzca el primer entero")),Integer.parseInt(JOptionPane.showInputDialog( "Introduzca el segundo entero"))) , "Potencia", JOptionPane.PLAIN_MESSAGE);
break;
case "8":
JOptionPane.showMessageDialog(null, "El sumatorio es "+Sumatorio(Integer.parseInt(JOptionPane.showInputDialog( "Introduzca entero"))) , "Sumatorio", JOptionPane.PLAIN_MESSAGE);
break;
default:
seguir=false;
break;
// JOptionPane.showMessageDialog(null, "No existe esa opcion", "Error", JOptionPane.PLAIN_MESSAGE);
// break;
}
}
}
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));
}
}
}