Untitled

 avatar
unknown
plain_text
2 years ago
3.2 kB
5
Indexable
package solution;
import java.awt.BorderLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.*;

public class Calculator 
{

	private JFrame calculatorFrame;
	private JLabel res;
	private JButton addButton;
    private JButton subButton;
    private JButton multButton;
    private JButton divButton;
    private JTextField leftOperend;
    private JTextField rightOperend;
	
	public Calculator()
		{
			calculatorFrame = new JFrame();
			calculatorFrame.setLocation(100,100);
			calculatorFrame.setSize(400,400);
			calculatorFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
			calculatorFrame.setTitle("My Simple Caclculator");
	
			initializeComponents(); //create and add all components
	
			calculatorFrame.pack();
			calculatorFrame.setVisible(true);
		}
	
	public void initializeComponents()
	{
		
		JPanel buttonPanel = new JPanel();
		JButton addButton = new JButton("ADD");
		JButton subButton = new JButton("SUB");
		JButton multButton = new JButton("MULT");
		JButton divButton = new JButton("DIV");
		
		JPanel resultLabel = new JPanel();
		JLabel result = new JLabel("result = ");
		
		JPanel txt = new JPanel();
		JTextField left = new JTextField(10);
		JTextField right  = new JTextField(10);
		res = new JLabel("Result = ");
		res.setName("resultLabel");
		
		buttonPanel.add(addButton);
		buttonPanel.add(subButton);
		buttonPanel.add(multButton);	
		buttonPanel.add(divButton);		
		resultLabel.add(result);
		txt.add(left);
		txt.add(right);
		
		addButton.setName("addButton");		
		subButton.setName("subButton");		
		multButton.setName("multButton");		
		divButton.setName("divButton");		
		result.setName("resultLabel");
		left.setName("leftOperand");
		right.setName("rightOperand");

		calculatorFrame.add(buttonPanel, BorderLayout.PAGE_END);
		calculatorFrame.add(resultLabel, BorderLayout.CENTER);
		calculatorFrame.add(txt, BorderLayout.PAGE_START);
		
	}
		
		public void actionPerformed(ActionEvent e)
	    {
	        try
	        {
	            double left = Double.parseDouble(leftOperend.getText());
	            double right = Double.parseDouble(rightOperend.getText());
	            double r = 0.0;
	            
	            if(e.getSource() == addButton)
	            {
	                r = left + right;
	            }
	            
	            else if(e.getSource() == subButton)
	            {
	                r = left - right;
	            }
	            
	            else if(e.getSource() == multButton)
	            {
	                r = left * right;
	            }
	            
	            else if(e.getSource() == divButton)
	            {
	                if(right == 0) throw new Exception();
	                r = left / right;
	            }
	            
	            res.setText("Result = " + (String.valueOf(r)));
	        }
	        
	        catch(Exception u)
	        {
	            res.setText("Result = Error");
	        }
	    }
	
	public JFrame getFrame()
	{
		return calculatorFrame;	
	}
	
	public static void main(String[] args)
	{
		Calculator calc = new Calculator(); //Method is done
	}
}
Editor is loading...