0% found this document useful (0 votes)
17 views

Javalabweek 2

Pls allow me

Uploaded by

Vaishnavi Vs
Copyright
© © All Rights Reserved
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
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