Calculadora em java - receba os valores e o tipo do operador!

Olá, eu queria ajuda para implementar um código de uma calculadora q receba os valores e o tipo de operador( valor1 operador valor2),eu fiz o código normal só recebendo os valores e efetuando as operações em métodos, mas agora me vejo em um entrave. Me ajudem!

Poste o que você já fez até agora e a parte que você está em dúvida para que possamos ajudar da melhor maneira!

Qual é o entrave? Porque aquele código de métodos é o mais usual, como você pensa?

Tai o q eu já fiz, minha duvida é em relação aos operandos, como lê-los através do teclado e utilizar-los na calculadora(valor operador valor)??

package calculadora;
import javax.swing.JOptionPane;
/**
 *
 * @author DSL
 */
public class Calculadora {

    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
    
    ClasseCalc calc = new ClasseCalc();
    
    int DSL = Integer.parseInt(JOptionPane.showInputDialog("Qual operação deseja fazer?\n" 
            +"1- para somar\n"
            +"2-para subtrair\n"
            +"3-para multiplicar\n" 
            +"4-para dividir\n" 
            +"5-para porcentagem\n"));
    
    switch (DSL){
        case 1:{
            calc.num1=Float.parseFloat(JOptionPane.showInputDialog("informe o 1° numero"));
            calc.num2=Float.parseFloat(JOptionPane.showInputDialog("informe o 2° numero"));
            calc.Somar();
            JOptionPane.showMessageDialog(null, calc.RetornaResult());
            break;
        }
        case 2:{
            calc.num1=Float.parseFloat(JOptionPane.showInputDialog("informe o 1° numero"));
            calc.num2=Float.parseFloat(JOptionPane.showInputDialog("informe o 2° numero"));
            calc.Diminuir();
            JOptionPane.showMessageDialog(null, calc.RetornaResult());
            break;
        }
        case 3:{
            calc.num1=Float.parseFloat(JOptionPane.showInputDialog("informe o 1° numero"));
            calc.num2=Float.parseFloat(JOptionPane.showInputDialog("informe o 2° numero"));
            calc.Multiplica();
            JOptionPane.showMessageDialog(null, calc.RetornaResult());
            break;
        }
        case 4:{
            calc.num1=Float.parseFloat(JOptionPane.showInputDialog("informe o 1° numero"));
            calc.num2=Float.parseFloat(JOptionPane.showInputDialog("informe o 2° numero"));
            calc.Dividir();
            JOptionPane.showMessageDialog(null, calc.RetornaResult());
            break;
        }
        case 5:{
            calc.num1=Float.parseFloat(JOptionPane.showInputDialog("informe o 1° numero"));
            calc.num2=Float.parseFloat(JOptionPane.showInputDialog("informe o 2° numero"));
            calc.Porcento();
            JOptionPane.showMessageDialog(null, calc.RetornaResult());
            break;
        }
        default:{
            JOptionPane.showMessageDialog(null, "A operação não esta disponivel");
        }
    }
    }
    
}