Autor Tema: Excepciones en calculadora con Interfaz gráfica (Java)  (Leído 3993 veces)

Loperso

  • Sin experiencia
  • *
  • APR2.COM
  • Mensajes: 7
    • Ver Perfil
Excepciones en calculadora con Interfaz gráfica (Java)
« en: 18 de Febrero 2017, 18:22 »
Hola, lo que ocurre es que tengo una calculadora y se me pide que controle dos excepciones que son: 1. Cuando se ingresa un dato que no es un numero, 2. Cuando se hace la division por cero.

Las excepciones deben estar en una clase aparte, y ahi esta el problema no se como hacerlo, no se que va en el Try ... He intentado varias cosas pero no me resultan, agradeceria que me guiaran en esto

Esto es lo que llevo:

En package Principal
Código: [Seleccionar]
public class Principal {
    public static void main(String[] args) {
        Vista vista = new Vista();
        Modelo modelo = new Modelo();
        Controlador controla = new Controlador(vista, modelo);
        controla.Iniciar();
        vista.setVisible(true);
    }
}

En package Modelo
Código: [Seleccionar]
public class Modelo {
    private double dato1 = 0;
    private double dato2 = 0;
    private String operador = "";
    private double total = 0;

    public double getDato1() {
        return dato1;
    }

    public void setDato1(double dato1) {
        this.dato1 = dato1;
    }

    public double getDato2() {
        return dato2;
    }

    public void setDato2(double dato2) {
        this.dato2 = dato2;
    }

    public String getOperador() {
        return operador;
    }

    public void setOperador(String operador) {
        this.operador = operador;
    }

    public double getTotal() {
        return total;
    }

    public void setTotal(double total) {
        this.total = total;
    }
   
    public double Operacion(){
        if (operador.equals("+")) {
            return total=dato1+dato2;
        }
        if (operador.equals("-")) {
            return total=dato1-dato2;
        }
        if (operador.equals("x")) {
            return total=dato1*dato2;
        }
        if (operador.equals("/")) {
            return total=dato1/dato2;
        }
       
        return 0;
    }
}

En package Controlador
Código: [Seleccionar]
public class Controlador implements ActionListener{
   
    Modelo modelo = new Modelo();
    Vista vista = new Vista();

    public Controlador(){}

    public Controlador(Vista vista, Modelo modelo) {
        this.vista= vista;
        this.modelo = modelo;
        this.vista.suma.addActionListener(this);
        this.vista.resta.addActionListener(this);
        this.vista.multiplicacion.addActionListener(this);
        this.vista.division.addActionListener(this);
        this.vista.borrar.addActionListener(this);
        this.vista.salir.addActionListener(this);
    }
   
    public void Iniciar(){
        vista.setTitle("Calculadora 100% real no Feik");
        vista.setLocationRelativeTo(null);
        vista.txt1.setText(String.valueOf(modelo.getDato1()));
        vista.txt2.setText(String.valueOf(modelo.getDato2()));
        vista.resultado.setText(String.valueOf(modelo.getOperador()));
    }

    @Override
    public void actionPerformed(ActionEvent e) {
       modelo.setDato1(Double.parseDouble(vista.txt1.getText()));
       modelo.setDato2(Double.parseDouble(vista.txt2.getText()));
        if (e.getSource() == vista.suma) {
            modelo.setOperador("+");
        }
        if (e.getSource() == vista.resta) {
            modelo.setOperador("-");
        }
        if (e.getSource() == vista.multiplicacion) {
            modelo.setOperador("x");
        }
        if (e.getSource() == vista.division) {
            modelo.setOperador("/");
        }
        if (e.getSource() == vista.borrar) {
            vista.txt1.setText("0.0");
            vista.txt2.setText("0.0");
            vista.resultado.setText("0.0");
        }
        if (e.getSource() == vista.salir) {
            System.exit(0);
        }
        vista.resultado.setText(String.valueOf(modelo.Operacion()));

    }
   
}

Y la parte visual consta de Tres textField, seis Buttoms (suma, resta. multiplicacion, division, borrar, salir)


Ogramar

  • Moderador Global
  • Experto
  • *******
  • Mensajes: 2660
    • Ver Perfil
Re:Excepciones en calculadora con Interfaz gráfica (Java)
« Respuesta #1 en: 15 de Abril 2017, 20:07 »
Buenas Loperso, he intentado compilar pero me indica que falta la clase Vista

En este curso hay algunos ejemplos de excepciones con Java http://aprenderaprogramar.com/index.php?option=com_content&view=category&id=58&Itemid=180 entregas CU00926C y CU00927C

Supongo que debes definir una clase que extienda a la clase Exception, es decir, una excepción definida por el programador en lugar de una excepción predefinida Java

Este sería un ejemplo:

Código: [Seleccionar]
class ExcepcionDefinidaPorProgramador extends Exception {
   public ExcepcionDefinidaPorProgramador(String msg){
      super(msg);
   }
}

class EmployeeTest {
   static void  employeeAge(int age) throws ExcepcionDefinidaPorProgramador{
      if(age < 0)
         throw new ExcepcionDefinidaPorProgramador("La edad no puede ser menor de cero");
      else
         System.out.println("La entrada es válida!!");
   }
   public static void main(String[] args) {
       try {
            employeeAge(-2);
       }
       catch (ExcepcionDefinidaPorProgramador e) {
            e.printStackTrace();
       }
   }
}

Salu2

 

Sobre la educación, sólo puedo decir que es el tema más importante en el que nosotros, como pueblo, debemos involucrarnos.

Abraham Lincoln (1808-1865) Presidente estadounidense.

aprenderaprogramar.com: Desde 2006 comprometidos con la didáctica y divulgación de la programación

Preguntas y respuestas

¿Cómo establecer o cambiar la imagen asociada (avatar) de usuario?
  1. Inicia sesión con tu nombre de usuario y contraseña.
  2. Pulsa en perfil --> perfil del foro
  3. Elige la imagen personalizada que quieras usar. Puedes escogerla de una galería de imágenes o subirla desde tu ordenador.
  4. En la parte final de la página pulsa el botón "cambiar perfil".