This homework requires to finish the code shown below that p

This homework requires to finish the code shown below that produced the exact picture shown in here. No different code is possible but finishing where the code requires to do.

The code can be structured as Model, Veiw, Controller (MVC)

Thanks a lot

Starter code;

import java.awt.*;

// Using AWT\'s layouts

import java.awt.event.*;

// Using AWT\'s event classes and listener interfaces

import javax.swing.*;

// Using Swing\'s components and container

// A Swing application extends from javax.swing.JFrame

/* Need Javadoc documentation here * * */

public class SwingAdder extends JFrame {

private JTextField tfNumber1, tfNumber2, tfResult;

private JButton btnAdd, btnClear;

private int number1, number2, result;

// Constructor to set up UI components and event handlers public SwingAdder() {

// Swing components should be added to the content-pane of the JFrame.

Container cp = getContentPane();

// Set this Container to grid layout of 4 rows and 2 columns cp.setLayout(new GridLayout(4, 2, 10, 3));

// Components are added from left-to-right, top-to-bottom

cp.add(new JLabel(\"First Number \")); // at (1, 1)

tfNumber1 = new JTextField(10);

tfNumber1.setHorizontalAlignment(JTextField.RIGHT);

cp.add(tfNumber1); // at (1, 2)

// add your code here.......

// .......

btnAdd = new JButton(\"ADD\");

cp.add(btnAdd); // at (4, 1)

// use an anonymous (or lambda function) for the action listener

btnAdd.addActionListener(new ActionListener() {

@Override

public void actionPerformed(ActionEvent evt) {

number1 = Integer.parseInt(tfNumber1.getText());

// add the rest of your code here......

}

});

btnClear = new JButton(\"CLEAR\");

cp.add(); // at (4, 2)

// use another anonymous function here for the clear button

btnClear.addActionListener(new ActionListener() {

@Override

public void actionPerformed(ActionEvent evt) {

// add your code here. }

});

// for the \"window-close\" button

setDefaultCloseOperation(EXIT_ON_CLOSE);

setTitle(\"Swing Adder\"); setSize(300, 170);

setVisible(true);

}

// The entry main() method

public static void main(String[] args) {

// For thread safety, use the event-dispatching thread to construct UI

javax.swing.SwingUtilities.invokeLater(new Runnable() {

@Override

public void run() { new SwingAdder(); // Let the constructor do the job

}

});

1) Using the starter code above (called SwingArithmitics) and then include buttons “+”, “-“, “*”, */”, “%”(remainder) and CLEAR to the calculator as shown in the image below.

Think about the design before you begin coding. How could you make it as MVC like as possible? What would happen to your design if the requirement suddenly changed to using floating point numbers instead of integers. How much code would you have to re-write. When you are done coding how much cut and paste code do you have? Could you have a better structure?

2) Make sure to check for illegal inputs (No floating point numbers, characters etc..) Warn the user with a dialog and clear the input so they can start over.

3) Make sure to catch overflows (i.e. numbers too large for the calculator.) Warn the user and clear the values so that they can start over.

Great many thanks

Swing Arithmetics E X First Number Second Number 321 Result 39483 CLEAR

Solution

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class SwingAdder extends JFrame {
   private JTextField tfNumber1, tfNumber2, tfResult;
   private JButton btnAdd, btnClear, btnSub, btnMul, btnDiv, btnMod;
   private int number1, number2, result;
   private String str, num1, num2, ans;
   //private static JDialog d;
// Constructor to set up UI components and event handlers
   public SwingAdder() {
       setTitle(\"Swing Adder\");
       setSize(300, 400);
       setVisible(true);  
  
// Swing components should be added to the content-pane of the JFrame.
       JPanel cp = new JPanel();
       getContentPane().add(cp);
      
// Set this Container to grid layout of 4 rows and 2 columns
       GridLayout layout = new GridLayout(6,2);
       layout.setHgap(10);
       layout.setVgap(10);
       cp.setLayout(layout);
// Components are added from left-to-right, top-to-bottom
       cp.add(new JLabel(\"First Number \"));
       tfNumber1 = new JTextField(10);
       //tfNumber1.setHorizontalAlignment(JTextField.RIGHT);
       cp.add(tfNumber1);
       cp.add(new JLabel(\"Second Number \"));
       tfNumber2 = new JTextField(10);
       //tfNumber1.setHorizontalAlignment(JTextField.RIGHT);
       cp.add(tfNumber2);
       cp.add(new JLabel(\"Result \"));
       tfResult = new JTextField(10);
       tfResult.setEditable(false);
       //tfNumber1.setHorizontalAlignment(JTextField.RIGHT);
       cp.add(tfResult);
       btnAdd = new JButton(\"+\");
       cp.add(btnAdd);
       btnSub = new JButton(\"-\");
       cp.add(btnSub);
       btnMul = new JButton(\"*\");
       cp.add(btnMul);
       btnDiv = new JButton(\"/\");
       cp.add(btnDiv);
       btnMod = new JButton(\"%\");
       cp.add(btnMod);
       btnClear = new JButton(\"CLEAR\");
       cp.add(btnClear);
       num1 = tfNumber1.getText();
       num2 = tfNumber2.getText();
       try
       {
           if(num1.contains(\".\") || num1.contains(\".\"))
           {
               ans = \"Contains float\";
           }
           Integer.parseInt(num1);
           Integer.parseInt(num2);
       }
       catch(NumberFormatException ex)
       {
           ans = \"Contains Character\";
       }
      
// use an anonymous (or lambda function) for the action listener
      
       btnAdd.addActionListener(new ActionListener() {
           @Override
           public void actionPerformed(ActionEvent evt) {
               number1 = Integer.parseInt(tfNumber1.getText());
               number2 = Integer.parseInt(tfNumber2.getText());
               result = number1 + number2;
               str = Integer.toString(result);
               tfResult.setText(str);
           }
       });
       btnSub.addActionListener(new ActionListener() {
           @Override
           public void actionPerformed(ActionEvent evt) {
               number1 = Integer.parseInt(tfNumber1.getText());
               number2 = Integer.parseInt(tfNumber2.getText());
               result = number1 - number2;
               str = Integer.toString(result);
               tfResult.setText(str);
           }
       });
       btnMul.addActionListener(new ActionListener() {
           @Override
           public void actionPerformed(ActionEvent evt) {
               number1 = Integer.parseInt(tfNumber1.getText());
               number2 = Integer.parseInt(tfNumber2.getText());
               result = number1 * number2;
               str = Integer.toString(result);
               tfResult.setText(str);
           }
       });
       btnDiv.addActionListener(new ActionListener() {
           @Override
           public void actionPerformed(ActionEvent evt) {
               number1 = Integer.parseInt(tfNumber1.getText());
               number2 = Integer.parseInt(tfNumber2.getText());
               result = number1 / number2;
               str = Integer.toString(result);
               tfResult.setText(str);
           }
       });
       btnMod.addActionListener(new ActionListener() {
           @Override
           public void actionPerformed(ActionEvent evt) {
               number1 = Integer.parseInt(tfNumber1.getText());
               number2 = Integer.parseInt(tfNumber2.getText());
               result = number1 % number2;
               str = Integer.toString(result);
               tfResult.setText(str);
           }
       });              
       btnClear.addActionListener(new ActionListener() {
           @Override
           public void actionPerformed(ActionEvent evt) {
               tfNumber1.setText(\"\");
               tfNumber2.setText(\"\");
               tfResult.setText(\"\");
           }
       });
       tfNumber1.addActionListener(new ActionListener() {
           @Override
           public void actionPerformed(ActionEvent evt) {
               if(ans == \"Contains float\")
               {
                   JOptionPane.showMessageDialog(null, ans);
               }
               else if(ans == \"Contains Character\")
               {
                   JOptionPane.showMessageDialog(null, ans);
               }
               tfNumber1.setText(\"\");
               tfNumber2.setText(\"\");
               tfResult.setText(\"\");
              
           }
       });
       tfNumber2.addActionListener(new ActionListener() {
           @Override
           public void actionPerformed(ActionEvent evt) {
               if(ans == \"Contains float\")
               {
                   JOptionPane.showMessageDialog(null, ans);
               }
               else if(ans == \"Contains Character\")
               {
                   JOptionPane.showMessageDialog(null, ans);
               }
               tfNumber1.setText(\"\");
               tfNumber2.setText(\"\");
               tfResult.setText(\"\");
              
           }
       });
// for the \"window-close\" button
       setDefaultCloseOperation(EXIT_ON_CLOSE);
   }


   public static void main(String[] args) {
// For thread safety, use the event-dispatching thread to construct UI
       javax.swing.SwingUtilities.invokeLater(new Runnable() {
           @Override
           public void run() { new SwingAdder(); // Let the constructor do the job
           }
       });  
  
   //new SwingAdder();
   }
}

This homework requires to finish the code shown below that produced the exact picture shown in here. No different code is possible but finishing where the code
This homework requires to finish the code shown below that produced the exact picture shown in here. No different code is possible but finishing where the code
This homework requires to finish the code shown below that produced the exact picture shown in here. No different code is possible but finishing where the code
This homework requires to finish the code shown below that produced the exact picture shown in here. No different code is possible but finishing where the code
This homework requires to finish the code shown below that produced the exact picture shown in here. No different code is possible but finishing where the code

Get Help Now

Submit a Take Down Notice

Tutor
Tutor: Dr Jack
Most rated tutor on our site