Calculadora Cientifica

Necesito realizar una Calculadora Científica pero únicamente ciertas funciones como:Suma, Resta, Multiplicación,División,Elevar al Cuadrado, Raíz Cuadrada, Porcentaje, Seno, Coseno y Tangente. Me podrían ayudar? esto es lo que tengo hasta ahora en código:

package calculadoraavanzada;

import javax.swing.*;

public class CalculadoraAvanzada {

public static void main(String[] args) {
String n1,n2,opc;
double angulo=90,res;

JOptionPane.showMessageDialog(null,"CALCULADORA AVANZADA");

do{
n1=JOptionPane.showInputDialog("Introduce un número");
}
while(n1.equals(""));
int p1=Integer.parseInt(n1);
do{
n2=JOptionPane.showInputDialog("Introduce otro número");
}
while(n2.equals(""));
int p2=Integer.parseInt(n2);
JOptionPane.showMessageDialog(null,"\tMENÚ\n1. Suma\n2. Resta\n3. Producto\n4. División\n5. Cuadrado\n6 Raíz\n7 Seno\n8 Coseno\n9 Tangente\n10"+"\n7Salir");
do{
opc=JOptionPane.showInputDialog("Introduce una opción");
}
while(opc.equals(""));
int op=Integer.parseInt(opc);

switch(op){

case 1://Suma
JOptionPane.showMessageDialog(null,"La suma es: "+suma(p1,p2));
break;
case 2://Resta
JOptionPane.showMessageDialog(null,"La resta es: "+resta(p1,p2));
break;
case 3://Multiplicación
JOptionPane.showMessageDialog(null,"El producto es: "+producto(p1,p2));
break;
case 4://División
JOptionPane.showMessageDialog(null,"La division es: "+division(p1,p2));
break;
case 5://Elevar al cuadrado
JOptionPane.showMessageDialog(null,"El cuadrado del numero es: "+cuadrado(p1));

case 6://Raíz cuadrada
JOptionPane.showMessageDialog(null,"La raíz del numero es: "+raiz(p1));

case 7://Porcentaje
JOptionPane.showMessageDialog(null,"El porcentaje del numero es: "+porcentaje(p1));

case 8:
JOptionPane.showMessageDialog(null,"El seno del ángulo" + angulo + "es:" res);
break;
case 9:
JOptionPane.showMessageDialog(null,"El coseno del ángulo" + angulo + "es:" res);
break;
case 10:
JOptionPane.showMessageDialog(null,"El tangente del ángulo" + angulo + "es:" res);
break;

default:break;
}
System.exit(0);
}
static int suma(int x,int y){
return x+y;
}
static int resta(int x,int y){
return x-y;
}
static int producto(int x,int y){
return x*y;
}
static int division(int x,int y){
return x/y;
}
static double cuadrado(double x){
return x*x;
}
static double raiz(double x){
return Math.sqrt()
}
static double porcentaje (double x){
return x*/100
}
static double seno (double x){
return res = Math.sin(angulo*2.0*Math.PI/360.0);
}
static double coseno (double x){
return res=Math.cos(angulo*2.0*Math.PI/360.0);
}
static double tangente (double x){
return res = Math.tan(angulo*2.0*Math.PI/360.0);
}

Opciones de visualización de comentarios

Seleccione la forma que prefiera para mostrar los comentarios y haga clic en «Guardar las opciones» para activar los cambios.
Imagen de neko069

Yo veo decente tú código,

Yo veo decente tú código, peeeero lo importante es, qué más te falta.
Dentro de alguna mejora que bien puedes hacer al final, es que cada botón que representes en tu calculadora detone un evento, en lugar de, por ejemplo el switch que tienes implementado.

Replica

Supongo que algo le falta neko069 porque me marca varios errores sobretodo en las funciones de seno, coseno y tangente. A parte se me hace algo largo el procedimiento habrá forma de que sea haga más sencillo?.

Imagen de neko069

No entiendo

A qué errores te refieres? para obtener ayuda no es sólo decir que salen "varios errores", publica el stack trace para checar a qué te refieres.
Y cual procedimiento dices? porqué largo?