Question: I have a JAVA program that requires me to modify the JAVA code that always the use of exponents. How do I do that. //

I have a JAVA program that requires me to modify the JAVA code that always the use of exponents. How do I do that.

// ITP 120 Java

// Homework 13 (100 points) Due Date: April 25, 2018

// Modify this program by adding a capability to use exponents

// Add a button for exponent calculations

// Example: double result = Math.pow(3, 4);// result is 243; 3**4 = 243

// Exception handling is being used in this program to catch improperly formatted inputs.

// *******************************************************************

import java.awt.*;

import java.awt.event.*;

import javax.swing.*;

import javax.swing.border.*;

public class JavaGUICalculator extends JFrame {

//Declare variables of GUI Components

private JLabel jlblNumber1 = new JLabel("Number 1");

private JLabel jlblNumber2 = new JLabel("Number 2");

private JLabel jlblResult = new JLabel("Result");

private JTextField jtfNumber1 = new JTextField(5);

private JTextField jtfNumber2 = new JTextField(5);

private JTextField jtfResult = new JTextField(10);

private JButton jbtAdd = new JButton("Add");

private JButton jbtSubtract = new JButton("Subtract");

private JButton jbtMultiply = new JButton("Multiply");

private JButton jbtDivide = new JButton("Divide");

private JButton jbtCls = new JButton("Clear");

private JButton jbtExit = new JButton("Exit");

public JavaGUICalculator()

{

initGUICalculator();

}// End of no-arg-constracter.

private void initGUICalculator(){

//Seting up the border line for panels.

Border line = new LineBorder(Color.BLACK, 1);

//setting up the colors.

//Colors for label.

jlblNumber1.setForeground(new Color(28, 50, 210));

jlblNumber2.setForeground(new Color(28, 50, 210));

jlblResult.setForeground(new Color(28, 50, 210));

//Colors for text fields.

jtfNumber1.setForeground(new Color(28, 50, 210));

jtfNumber2.setForeground(new Color(28, 50, 210));

jtfResult.setForeground(new Color(28, 50, 210));

//Colors for buttons.

jbtAdd.setForeground(new Color(28, 50, 210));

jbtSubtract.setForeground(new Color(28, 50, 210));

jbtMultiply.setForeground(new Color(28, 50, 210));

jbtDivide.setForeground(new Color(28, 50, 210));

jbtCls.setForeground(new Color(28, 50, 210));

jbtExit.setForeground(new Color(28, 50, 210));

//Label and TextField panels

JPanel panel1 = new JPanel();

panel1.setLayout(new FlowLayout(FlowLayout.LEFT,5,2));

panel1.setBackground(Color.yellow);

panel1.add(jlblNumber1);

panel1.add(jtfNumber1);

panel1.add(jlblNumber2);

panel1.add(jtfNumber2);

panel1.add(jlblResult);

panel1.add(jtfResult);

panel1.setBorder(line);

jtfResult.setEditable(false); // The result is NOT editable.

//Button panel

JPanel panel2 = new JPanel();

panel2.setLayout(new FlowLayout(FlowLayout.CENTER,5,2));

panel2.setBackground(Color.orange);

//Adding button variables to panel2

panel2.add(jbtAdd);

panel2.add(jbtSubtract);

panel2.add(jbtMultiply);

panel2.add(jbtDivide);

panel2.add(jbtCls);

panel2.add(jbtExit);

panel2.setBorder(line);

//set the button keys as mnemonic 'A','S','M','D' Use Alt+A on keyboard

jbtAdd.setMnemonic('A');

jbtSubtract.setMnemonic('S');

jbtMultiply.setMnemonic('M');

jbtDivide.setMnemonic('D');

jbtCls.setMnemonic('C');

jbtExit.setMnemonic('E');

// Set the button tool tips.

jbtAdd.setToolTipText("Click to add values or press");

jbtSubtract.setToolTipText("Click to Subtract values or press");

jbtMultiply.setToolTipText("Click to Multiply values or press");

jbtDivide.setToolTipText("Click to divide values or press");

jbtCls.setToolTipText("Click to Clear the values or press");

jbtExit.setToolTipText("Click to Exit from here or press");

//Adding panel1 and panel2 which are (JPanels) to the frame

//Set the layout as a border layout

getContentPane().setLayout(new BorderLayout());

getContentPane().add(panel1, BorderLayout.CENTER); //Panel1 will be in the center.

getContentPane().add(panel2, BorderLayout.SOUTH); //Panel2 will be in the botton.

// Upon closing the window, the program will be halted.

addWindowListener(new WindowAdapter(){

public void windowClose(WindowEvent e){

System.exit(0);//Program will be Halted.

}

});

//Registering the button listeners in the inner class.

//To add the two values.

jbtAdd.addActionListener(new ActionListener(){

public void actionPerformed(ActionEvent e){

String caption = e.getActionCommand();

if(e.getSource() instanceof JButton){

if("Add".equals(caption))

calculator(0);

}

}

});

//To subtract two values.

jbtSubtract.addActionListener(new ActionListener(){

public void actionPerformed(ActionEvent e){

String caption = e.getActionCommand();

if(e.getSource() instanceof JButton){

if("Subtract".equals(caption))

calculator(1);

}

}

});

//To multiply two values.

jbtMultiply.addActionListener(new ActionListener(){

public void actionPerformed(ActionEvent e){

String caption = e.getActionCommand();

if(e.getSource() instanceof JButton){

if("Multiply".equals(caption))

calculator(2);

}

}

});

//To divide two values.

jbtDivide.addActionListener(new ActionListener(){

public void actionPerformed(ActionEvent e){

String caption = e.getActionCommand();

if(e.getSource() instanceof JButton){

if("Divide".equals(caption))

calculator(3);

}

}

});

//To clear all the value fields

jbtCls.addActionListener(new ActionListener(){

public void actionPerformed(ActionEvent e){

String caption = e.getActionCommand();

if(e.getSource() instanceof JButton){

if("Clear".equals(caption))

clearFields();

}

}

});

//To exit from this JavaGUICalculator program.

jbtExit.addActionListener(new ActionListener(){

public void actionPerformed(ActionEvent e){

String caption = e.getActionCommand();

if(e.getSource() instanceof JButton){

if("Exit".equals(caption))

clearFields();

System.exit(0);//Halt the programe and exit from here.

}

}

});

}//End of initCalculator method.

public void calculator(int operator)

{

//Using try catch block for improperly formatted input.

try {

double num1 = new Double(jtfNumber1.getText().trim()).doubleValue();

double num2 = new Double(jtfNumber2.getText().trim()).doubleValue();

double result = 0.0;

switch(operator){

case 0 : result = (num1 + num2); break;

case 1 : result = (num1 - num2); break;

case 2 : result = (num1 * num2); break;

case 3 : result = (num1 * 1.0 / num2); break;

}

String str = String.format("%1.4f", result);

jtfResult.setText(String.valueOf(str));

//process improperly formatted input.

}

catch (NumberFormatException numberError)

{

JOptionPane.showMessageDialog(this,"You must enter two values", "Invalid Number Format", JOptionPane.ERROR_MESSAGE );

clearFields();

}

} //End of calculator method.

// Clear all the fields and return to

// set the Focus at the insertion point.

public void clearFields(){

jtfNumber1.setText(" ");

jtfNumber2.setText(" ");

jtfResult.setText(" ");

jtfNumber1.requestFocus();

}//End of clearFields method.

public static void main(String[] args){

JavaGUICalculator frame = new JavaGUICalculator();

frame.setTitle("Calculator");

frame.setLocationRelativeTo(null);

frame.setBounds(200,100, 500, 100);

frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

frame.pack();

frame.setVisible(true);

}//End of main method.

}// End of class JavaGUICalculator

Step by Step Solution

There are 3 Steps involved in it

1 Expert Approved Answer
Step: 1 Unlock blur-text-image
Question Has Been Solved by an Expert!

Get step-by-step solutions from verified subject matter experts

Step: 2 Unlock
Step: 3 Unlock

Students Have Also Explored These Related Databases Questions!