Search code examples
javaappletcalculator

Java GUI Calculator: Create an applet that will do simple addition and subtraction for numbers


I want to expand my knowledge of Java over the summer, so I'm working on calculator application armed with GUI, which is an applet, and I want it to do simple addition and subtraction for given numbers. I want to have both: .java and .html files. When I try to compile code of my application I get an error:

C:\Users\quinja>javac Calculator.java javac: 
file not found: Calculator.java Usage: 
javac use -help for a list of possible options

I cannot see any errors, but I'm new to Java, so If anyone could look at it and try to find anything causes errors, then I'll be grateful for explaining how to fix them.

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;

public class Calculator {
    public static void main(String[] args) {  
        CalculatorFrame frame = new CalculatorFrame();
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.setVisible(true);
    }
}

//   A frame with a calculator panel.
class CalculatorFrame extends JFrame {
    public CalculatorFrame() {
        setTitle("Calculator");
        CalculatorPanel panel = new CalculatorPanel();
        add(panel);
        pack();
    }
}

//   A panel with calculator buttons and a result display.

class CalculatorPanel extends JPanel {  
    public CalculatorPanel() {  
        setLayout(new BorderLayout());

        result = 0;
        lastCommand = "=";
        start = true;

        // add the display

        display = new JButton("0");
        display.setEnabled(false);
        add(display, BorderLayout.NORTH);

        ActionListener insert = new InsertAction();
        ActionListener command = new CommandAction();

        // add the buttons in a 4 x 4 grid

        panel = new JPanel();
        panel.setLayout(new GridLayout(4, 4));

        addButton("7", insert);
        addButton("8", insert);
        addButton("9", insert);
        addButton("/", command);

        addButton("4", insert);
        addButton("5", insert);
        addButton("6", insert);
        addButton("*", command);

        addButton("1", insert);
        addButton("2", insert);
        addButton("3", insert);
        addButton("-", command);

        addButton("0", insert);
        addButton(".", insert);
        addButton("=", command);
        addButton("+", command);

        add(panel, BorderLayout.CENTER);
    }

    /*
    Adds a button to the center panel.
    @param label the button label
    @param listener the button listener
    */
    private void addButton(String label, ActionListener listener) {  
        JButton button = new JButton(label);
        button.addActionListener(listener);
        panel.add(button);
    }

    /*
    This action inserts the button action string to the
    end of the display text.
    */
    private class InsertAction implements ActionListener {
        public void actionPerformed(ActionEvent event) {
            String input = event.getActionCommand();
            if (start)  {
                display.setText("");
                start = false;
            }
        display.setText(display.getText() + input);
        }
    }

    /*
    This action executes the command that the button
    action string denotes.
    */
    private class CommandAction implements ActionListener {
        public void actionPerformed(ActionEvent event) {  
            String command = event.getActionCommand();

            if (start) {  
                if (command.equals("-")) { 
                   display.setText(command); 
                   start = false; 
                } else {
                    lastCommand = command;
                }
            } else {  
                calculate(Double.parseDouble(display.getText()));
                lastCommand = command;
                start = true;
            }
        }
    }

    /*
    Carries out the pending calculation. 
    @param x the value to be accumulated with the prior result.
    */
    public void calculate(double x) {
        if (lastCommand.equals("+")) {
            result += x;
        } else if (lastCommand.equals("-")) {
            result -= x;
        } else if (lastCommand.equals("*")) {
            result *= x;
        } else if (lastCommand.equals("/")) {
            result /= x;
        } else if (lastCommand.equals("=")) {
            result = x;
        }

        display.setText("" + result);
    }

    private JButton display;
    private JPanel panel;
    private double result;
    private String lastCommand;
    private boolean start;
}

Solution

  • This is because your cmd is pointining to the directory 'quinja' and your java file is at some other location . First try to point your cmd at the directory where your java file is and then compile..

    You can use cd command to go to the desired directory. If you dont know how then tell me the path of your file and file name then I will tell you.

    Respose after comment:

    Open cmd and then type - cd java

    javac yourfilename.java