In this two class project I have created a GUI that takes the input from the user and calculates an answer. In my GUI class, I used a JOptionPane.showInputDialog to obtain the numbers from the user, and a JFrame with JButtons to choose the function. Is it possible, and if so how, to create a button that makes the JOptionPane part of code or, if that is not possible, the entire GUI class run again? Any help is appreciated.
This is the class for the logic/calculations
This is the class for the GUI.Code:import javax.swing.*;
public class Calculator {
static int numeratorAnswer;
static int denominatorAnswer;
public static void addReduce(int numeratorOne, int denominatorOne,
int numeratorTwo, int denominatorTwo) {
numeratorOne *= denominatorTwo;
numeratorTwo *= denominatorOne;
denominatorTwo *= denominatorOne;
denominatorOne = denominatorTwo;
numeratorAnswer = numeratorOne + numeratorTwo;
denominatorAnswer = denominatorTwo;
if (numeratorAnswer < denominatorAnswer) {
for (int i = numeratorAnswer + 1; i > 1; i--) {
if (denominatorAnswer % numeratorAnswer == 0) {
denominatorAnswer /= numeratorAnswer;
numeratorAnswer = 1;
} else if (numeratorAnswer % i == 0
&& denominatorAnswer % i == 0) {
numeratorAnswer /= i;
denominatorAnswer /= i;
}
}
} else if (numeratorAnswer > denominatorAnswer) {
for (int i = denominatorAnswer + 1; i > 1; i--) {
if (denominatorAnswer % numeratorAnswer == 0) {
denominatorAnswer /= numeratorAnswer;
numeratorAnswer = 1;
} else if (numeratorAnswer % i == 0
&& denominatorAnswer % i == 0) {
numeratorAnswer /= i;
denominatorAnswer /= i;
}
}
} else if (numeratorAnswer == denominatorAnswer) {
numeratorAnswer = 1;
denominatorAnswer = 1;
}
JOptionPane.showMessageDialog(null, numeratorAnswer + "/"
+ denominatorAnswer);
}
public static void subtractReduce(int numeratorOne, int denominatorOne,
int numeratorTwo, int denominatorTwo) {
numeratorOne *= denominatorTwo;
numeratorTwo *= denominatorOne;
denominatorTwo *= denominatorOne;
denominatorOne = denominatorTwo;
numeratorAnswer = numeratorOne - numeratorTwo;
denominatorAnswer = denominatorTwo;
if (numeratorAnswer < denominatorAnswer) {
for (int i = numeratorAnswer + 1; i > 1; i--) {
if (denominatorAnswer % numeratorAnswer == 0) {
denominatorAnswer /= numeratorAnswer;
numeratorAnswer = 1;
} else if (numeratorAnswer % i == 0
&& denominatorAnswer % i == 0) {
numeratorAnswer /= i;
denominatorAnswer /= i;
}
}
} else if (numeratorAnswer > denominatorAnswer) {
for (int i = denominatorAnswer + 1; i > 1; i--) {
if (denominatorAnswer % numeratorAnswer == 0) {
denominatorAnswer /= numeratorAnswer;
numeratorAnswer = 1;
} else if (numeratorAnswer % i == 0
&& denominatorAnswer % i == 0) {
numeratorAnswer /= i;
denominatorAnswer /= i;
}
}
} else if (numeratorAnswer == denominatorAnswer) {
numeratorAnswer = 1;
denominatorAnswer = 1;
}
JOptionPane.showMessageDialog(null, numeratorAnswer + "/"
+ denominatorAnswer);
}
public static void multiplyReduce(int numeratorOne, int denominatorOne,
int numeratorTwo, int denominatorTwo) {
numeratorAnswer = numeratorOne * numeratorTwo;
denominatorAnswer = denominatorOne * denominatorTwo;
if (numeratorAnswer < denominatorAnswer) {
for (int i = numeratorAnswer + 1; i > 1; i--) {
if (denominatorAnswer % numeratorAnswer == 0) {
denominatorAnswer /= numeratorAnswer;
numeratorAnswer = 1;
} else if (numeratorAnswer % i == 0
&& denominatorAnswer % i == 0) {
numeratorAnswer /= i;
denominatorAnswer /= i;
}
}
} else if (numeratorAnswer > denominatorAnswer) {
for (int i = denominatorAnswer + 1; i > 1; i--) {
if (denominatorAnswer % numeratorAnswer == 0) {
denominatorAnswer /= numeratorAnswer;
numeratorAnswer = 1;
} else if (numeratorAnswer % i == 0
&& denominatorAnswer % i == 0) {
numeratorAnswer /= i;
denominatorAnswer /= i;
}
}
} else if (numeratorAnswer == denominatorAnswer) {
numeratorAnswer = 1;
denominatorAnswer = 1;
}
JOptionPane.showMessageDialog(null, numeratorAnswer + "/"
+ denominatorAnswer);
}
public static void divideReduce(int numeratorOne, int denominatorOne,
int numeratorTwo, int denominatorTwo) {
numeratorAnswer = numeratorOne * denominatorTwo;
denominatorAnswer = denominatorOne * numeratorTwo;
if (numeratorAnswer < denominatorAnswer) {
for (int i = numeratorAnswer + 1; i > 1; i--) {
if (denominatorAnswer % numeratorAnswer == 0) {
denominatorAnswer /= numeratorAnswer;
numeratorAnswer = 1;
} else if (numeratorAnswer % i == 0
&& denominatorAnswer % i == 0) {
numeratorAnswer /= i;
denominatorAnswer /= i;
}
}
} else if (numeratorAnswer > denominatorAnswer) {
for (int i = denominatorAnswer + 1; i > 1; i--) {
if (denominatorAnswer % numeratorAnswer == 0) {
denominatorAnswer /= numeratorAnswer;
numeratorAnswer = 1;
} else if (numeratorAnswer % i == 0
&& denominatorAnswer % i == 0) {
numeratorAnswer /= i;
denominatorAnswer /= i;
}
}
} else if (numeratorAnswer == denominatorAnswer) {
numeratorAnswer = 1;
denominatorAnswer = 1;
}
JOptionPane.showMessageDialog(null, numeratorAnswer + "/"
+ denominatorAnswer);
}
}
Code:import java.awt.BorderLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.*;
public class GUI {
public static void main(String[] args) {
JButton addpiggy = new JButton("+");
JButton subtractpiggy = new JButton("-");
JButton multiplypiggy = new JButton("*");
JButton dividepiggy = new JButton("/");
JFrame functions = new JFrame("Choose a Function");
functions.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
functions.getContentPane().add(addpiggy, BorderLayout.WEST);
functions.getContentPane().add(subtractpiggy, BorderLayout.EAST);
functions.getContentPane().add(multiplypiggy, BorderLayout.NORTH);
functions.getContentPane().add(dividepiggy, BorderLayout.SOUTH);
functions.pack();
functions.setVisible(true);
addpiggy.addActionListener(new ActionListener(){
@Override
public void actionPerformed(ActionEvent arg0) {
//clickedAdd();
}
});
String numerator1 = JOptionPane.showInputDialog("Insert a Numerator");
int numeratorOne = Integer.parseInt(numerator1);
String denominator1 = JOptionPane
.showInputDialog("Insert a Denominator");
int denominatorOne = Integer.parseInt(denominator1);
String numerator2 = JOptionPane
.showInputDialog("Insert Another Numerator");
int numeratorTwo = Integer.parseInt(numerator2);
String denominator2 = JOptionPane
.showInputDialog("Insert Another Denominator");
int denominatorTwo = Integer.parseInt(denominator2);
}
public static void clickedAdd(){
Calculator.addReduce(numeratorOne, denominatorOne, numeratorTwo, denominatorTwo)
}
public static void clickedSubtract(){
Calculator.subtractReduce(numeratorOne, denominatorOne, numeratorTwo, denominatorTwo)
}
public static void clickedMultiply(){
Calculator.multiplyReduce(numeratorOne, denominatorOne, numeratorTwo, denominatorTwo)
}
public static void clickedDivide(){
Calculator.divideReduce(numeratorOne, denominatorOne, numeratorTwo, denominatorTwo)
}
}
