Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
0% found this document useful (0 votes)
17 views

Javalabweek 2

Pls allow me

Uploaded by

Vaishnavi Vs
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
17 views

Javalabweek 2

Pls allow me

Uploaded by

Vaishnavi Vs
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 5

Week-2: Write a Java Program that works as a simple calculator.

Use a grid layout to arrange the


buttons for the digits and for the +,-,*,/ operations.Add a text field to display the result. Handle any
possible exceptions like divide by zero.

Aim : To Write a Java Program that works as a simple calculator.Use a grid layout to arrange the
buttons for the digits and for the +,-,*,/ operations.Add a text field to display the result. Handle any
possible exceptions like divide by zero.

import java.awt.*;

import java.awt.event.*;

import javax.swing.*;

class BuildCalculator extends JFrame implements ActionListener{

JFrame actualWindow;

JPanel resultPanel, buttonPanel, infoPanel;

JTextField resultTxt;

JButton btn_digits[] = new JButton[10];

JButton btn_plus, btn_minus, btn_mul, btn_div, btn_equal, btn_dot, btn_clear;

char eventFrom;

JLabel expression, appTitle, siteTitle ;

double oparand_1 = 0, operand_2 = 0;

String operator = "=";

BuildCalculator() {

Font txtFont = new Font("SansSerif", Font.BOLD, 20);

Font titleFont = new Font("SansSerif", Font.BOLD, 30);

Font expressionFont = new Font("SansSerif", Font.BOLD, 15);


actualWindow = new JFrame("Calculator");

resultPanel = new JPanel();

buttonPanel = new JPanel();

infoPanel = new JPanel();

actualWindow.setLayout(new GridLayout(3, 1));

buttonPanel.setLayout(new GridLayout(4, 4));

infoPanel.setLayout(new GridLayout(3, 1));

actualWindow.setResizable(false);

appTitle = new JLabel("My Calculator");

appTitle.setFont(titleFont);

expression = new JLabel("Expression shown here");

expression.setFont(expressionFont);

siteTitle = new JLabel("OOP through Java Lab");

siteTitle.setFont(expressionFont);

siteTitle.setHorizontalAlignment(SwingConstants.CENTER);

siteTitle.setForeground(Color.BLUE);

resultTxt = new JTextField(15);

resultTxt.setBorder(null);

resultTxt.setPreferredSize(new Dimension(15, 50));

resultTxt.setFont(txtFont);

resultTxt.setHorizontalAlignment(SwingConstants.RIGHT);

for(int i = 0; i <10; i++) {

btn_digits[i] = new JButton(""+i);

btn_digits[i].addActionListener(this);

}
btn_plus = new JButton("+");

btn_plus.addActionListener(this);

btn_minus = new JButton("-");

btn_minus.addActionListener(this);

btn_mul = new JButton("*");

btn_mul.addActionListener(this);

btn_div = new JButton("/");

btn_div.addActionListener(this);

btn_dot = new JButton(".");

btn_dot.addActionListener(this);

btn_equal = new JButton("=");

btn_equal.addActionListener(this);

btn_clear = new JButton("Clear");

btn_clear.addActionListener(this);

resultPanel.add(appTitle);

resultPanel.add(resultTxt);

resultPanel.add(expression);

for(int i = 0; i < 10; i++) {

buttonPanel.add(btn_digits[i]);

buttonPanel.add(btn_plus);

buttonPanel.add(btn_minus);

buttonPanel.add(btn_mul);

buttonPanel.add(btn_div);

buttonPanel.add(btn_dot);

buttonPanel.add(btn_equal);

infoPanel.add(btn_clear);

infoPanel.add(siteTitle);

actualWindow.add(resultPanel);
actualWindow.add(buttonPanel);

actualWindow.add(infoPanel);

actualWindow.setSize(300, 500);

actualWindow.setVisible(true);

@Override

public void actionPerformed(ActionEvent e) {

eventFrom = e.getActionCommand().charAt(0);

String buildNumber;

if(Character.isDigit(eventFrom)) {

buildNumber = resultTxt.getText() + eventFrom;

resultTxt.setText(buildNumber);

} else if(e.getActionCommand() == ".") {

buildNumber = resultTxt.getText() + eventFrom;

resultTxt.setText(buildNumber);

else if(eventFrom != '='){

oparand_1 = Double.parseDouble(resultTxt.getText());

operator = e.getActionCommand();

expression.setText(oparand_1 + " " + operator);

resultTxt.setText("");

} else if(e.getActionCommand() == "Clear") {

resultTxt.setText("");

else {

operand_2 = Double.parseDouble(resultTxt.getText());
expression.setText(expression.getText() + " " + operand_2);

switch(operator) {

case "+": resultTxt.setText(""+(oparand_1 + operand_2));


break;

case "-": resultTxt.setText(""+(oparand_1 - operand_2));


break;

case "*": resultTxt.setText(""+(oparand_1 * operand_2));


break;

case "/": try {

if(operand_2 == 0)

throw new
ArithmeticException();

resultTxt.setText(""+(oparand_1 /
operand_2)); break;

} catch(ArithmeticException ae) {

JOptionPane.showMessageDialog(actualWindow,
"Divisor can not be ZERO");

public class Calculator {

public static void main(String[] args) {

new BuildCalculator();

You might also like