Hola, me pidieron sacar en jframe de fracciones (sea suma, resta, multiplicacion, divisor), pero simplificado el resultado.
Primero la clase Fracción le tengo asi:
public class Fraccion {
//atributos
private int numerador;
private int denominador;
//metodos
public Fraccion() {
this.numerador = 1;
this.denominador = 1;
}
public Fraccion(int numerador, int denominador) {
this.numerador = numerador;
this.denominador = denominador;
}
public int getNumerador() {
return this.numerador;
}
public void setNumerador(int nuevo) {
this.numerador = nuevo;
}
public int getDenominador() {
return this.denominador;
}
public void setDenominador(int nuevo) {
this.denominador = nuevo;
}
@Override
public String toString() {
return numerador + "/" + denominador;
}
public Fraccion sumar(int numerador2, int denominador2) {
int a = numerador;
int b = denominador;
int c = numerador2;
int d = denominador2;
int e = (d * a) + (b * c);
int f = b * d;
Fraccion resultado = new Fraccion(e, f);
return resultado;
}
public Fraccion sumar(Fraccion fra) {
return sumar(fra.getNumerador(),
fra.getDenominador());
}
public Fraccion restar(int numerador2, int denominador2) {
return sumar(-numerador2, denominador2);
}
public Fraccion restar(Fraccion fra) {
return sumar(-fra.getNumerador(), fra.getDenominador());
}
public Fraccion multiplicar(int numerador2, int denominador2) {
int num = numerador * numerador2;
int dem = denominador * denominador2;
return new Fraccion(num, dem);
}
public Fraccion multiplicar(Fraccion fra) {
return multiplicar(fra.getNumerador(),
fra.getDenominador());
}
public Fraccion division(int numerador2, int denominador2) {
int num = numerador * denominador2;
int den = denominador * numerador2;
return new Fraccion(num, den);
}
public Fraccion division(Fraccion fra) {
return division(fra.getNumerador(), fra.getDenominador());
}
Y este es el codigo del jframe:
private void jbtnResultadoActionPerformed(java.awt.event.ActionEvent evt) {
try {
Fraccion obj = new Fraccion();
//Primera fraccion
int num1 = Integer.parseInt(jTxtNum1.getText());
int den1 = Integer.parseInt(jtxtDen1.getText());
obj.setNumerador(num1);
obj.setDenominador(den1);
//Segunda Fraccion
int num2 = Integer.parseInt(jtxtNum2.getText());
int den2 = Integer.parseInt(jtxtDen2.getText());
Fraccion resultado = null;
if (jcboOperaciones.getSelectedItem().equals("+")) {
resultado = obj.sumar(num2, den2);
} else if (jcboOperaciones.getSelectedItem().equals("-")) {
resultado = obj.restar(num2, den2);
} else if (jcboOperaciones.getSelectedItem().equals("*")) {
resultado = obj.multiplicar(num2, den2);
} else if (jcboOperaciones.getSelectedItem().equals("/")) {
resultado = obj.division(num2, den2);
}
//Final
jtxtNum3.setText("" + resultado.getNumerador());
jtxtDen3.setText("" + resultado.getDenominador());
} catch (Exception ex) {
JOptionPane.showMessageDialog(this, "Ingrese solo valores numericos");
}
}