0% found this document useful (0 votes)
10 views14 pages

17f8289 Zaryab Khan OOAD - LAB6

The document contains the implementation of a basic calculator GUI using Java Swing. It includes a main class 'calculatorGUI' that sets up the user interface and a controller class 'calculator_logic' that handles the logic for arithmetic operations. The GUI allows users to perform addition, subtraction, multiplication, and division through button clicks, displaying results in a text field.

Uploaded by

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

17f8289 Zaryab Khan OOAD - LAB6

The document contains the implementation of a basic calculator GUI using Java Swing. It includes a main class 'calculatorGUI' that sets up the user interface and a controller class 'calculator_logic' that handles the logic for arithmetic operations. The GUI allows users to perform addition, subtraction, multiplication, and division through button clicks, displaying results in a text field.

Uploaded by

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

ooad

Lab#6

ZARYAB KHAN
17F8289
CalculatorGUI:
package view;

import java.awt.BorderLayout;

import java.awt.EventQueue;

import javax.swing.JFrame;

import javax.swing.JPanel;

import javax.swing.border.EmptyBorder;

import controller.calculator_logic;

import javax.swing.JTextField;

import javax.swing.JButton;

import java.awt.Font;

import java.awt.event.MouseAdapter;

import java.awt.event.MouseEvent;

import java.awt.event.ActionListener;

import java.awt.event.ActionEvent;

public class calculatorGUI extends JFrame {

private JPanel contentPane;

private JTextField txtio;

private JButton btn9;

private JButton btn8;

private JButton btn7;

private JButton btn6;

private JButton btn5;


private JButton btn4;

private JButton btn3;

private JButton btn2;

private JButton btn1;

private JButton btn0;

private JButton acbutton;

private JButton btnplus;

private JButton btnminus;

private JButton btnmultiply;

private JButton btndivide;

private JButton btndot;

private JButton btnequal;

private calculator_logic objCalc=new calculator_logic();

/**

* Launch the application.

*/

public static void main(String[] args) {

EventQueue.invokeLater(new Runnable() {

public void run() {

try {

calculatorGUI frame = new calculatorGUI();

frame.setVisible(true);

} catch (Exception e) {

e.printStackTrace();

});

/**

* Create the frame.


*/

public calculatorGUI() {

setTitle("Basic Calculator");

setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

setBounds(100, 100, 332, 350);

contentPane = new JPanel();

contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));

setContentPane(contentPane);

contentPane.setLayout(null);

txtio = new JTextField();

txtio.setBounds(0, 0, 316, 51);

contentPane.add(txtio);

txtio.setColumns(10);

JButton btn7 = new JButton("7");

btn7.addActionListener(new ActionListener() {

public void actionPerformed(ActionEvent arg0) {

});

btn7.addMouseListener(new MouseAdapter() {

@Override

public void mouseClicked(MouseEvent e) {

txtio.setText(txtio.getText()+"7");

});

btn7.setFont(new Font("Tahoma", Font.BOLD, 18));

btn7.setBounds(14, 78, 65, 45);

contentPane.add(btn7);

JButton btn8 = new JButton("8");


btn8.addMouseListener(new MouseAdapter() {

@Override

public void mouseClicked(MouseEvent e) {

txtio.setText(txtio.getText()+"8");

});

btn8.setFont(new Font("Tahoma", Font.BOLD, 18));

btn8.setBounds(89, 78, 65, 45);

contentPane.add(btn8);

JButton btn9 = new JButton("9");

btn9.addMouseListener(new MouseAdapter() {

@Override

public void mouseClicked(MouseEvent e) {

txtio.setText(txtio.getText()+"9");

});

btn9.setFont(new Font("Tahoma", Font.BOLD, 18));

btn9.setBounds(164, 79, 65, 43);

contentPane.add(btn9);

JButton btn4 = new JButton("4");

btn4.addMouseListener(new MouseAdapter() {

@Override

public void mouseClicked(MouseEvent e) {

txtio.setText(txtio.getText()+"4");

});

btn4.addActionListener(new ActionListener() {

public void actionPerformed(ActionEvent arg0) {

}
});

btn4.setFont(new Font("Tahoma", Font.BOLD, 18));

btn4.setBounds(14, 146, 65, 45);

contentPane.add(btn4);

JButton btn5 = new JButton("5");

btn5.addMouseListener(new MouseAdapter() {

@Override

public void mouseClicked(MouseEvent e) {

txtio.setText(txtio.getText()+"5");

});

btn5.setFont(new Font("Tahoma", Font.BOLD, 18));

btn5.setBounds(89, 146, 65, 45);

contentPane.add(btn5);

JButton btn6 = new JButton("6");

btn6.addMouseListener(new MouseAdapter() {

@Override

public void mouseClicked(MouseEvent e) {

txtio.setText(txtio.getText()+"6");

});

btn6.setFont(new Font("Tahoma", Font.BOLD, 18));

btn6.setBounds(164, 146, 65, 45);

contentPane.add(btn6);

JButton btn1 = new JButton("1");

btn1.addMouseListener(new MouseAdapter() {

@Override

public void mouseClicked(MouseEvent e) {


txtio.setText(txtio.getText()+"1");

});

btn1.setFont(new Font("Tahoma", Font.BOLD, 18));

btn1.setBounds(14, 213, 65, 45);

contentPane.add(btn1);

JButton btn2 = new JButton("2");

btn2.addMouseListener(new MouseAdapter() {

@Override

public void mouseClicked(MouseEvent e) {

txtio.setText(txtio.getText()+"2");

});

btn2.setFont(new Font("Tahoma", Font.BOLD, 18));

btn2.setBounds(89, 213, 65, 45);

contentPane.add(btn2);

JButton btn3 = new JButton("3");

btn3.addMouseListener(new MouseAdapter() {

@Override

public void mouseClicked(MouseEvent e) {

txtio.setText(txtio.getText()+"3");

});

btn3.setFont(new Font("Tahoma", Font.BOLD, 18));

btn3.setBounds(164, 213, 65, 45);

contentPane.add(btn3);

JButton btn0 = new JButton("0");

btn0.addMouseListener(new MouseAdapter() {
@Override

public void mouseClicked(MouseEvent e) {

txtio.setText(txtio.getText()+"0");

});

btn0.setFont(new Font("Tahoma", Font.BOLD, 18));

btn0.setBounds(89, 266, 65, 45);

contentPane.add(btn0);

JButton btndot = new JButton(".");

btndot.addMouseListener(new MouseAdapter() {

@Override

public void mouseClicked(MouseEvent e) {

if(!txtio.getText().isEmpty())

if(!txtio.getText().contains("."))

txtio.setText(txtio.getText()+".");

});

btndot.setFont(new Font("Tahoma", Font.BOLD, 18));

btndot.setBounds(164, 266, 65, 45);

contentPane.add(btndot);

JButton btnplus = new JButton("+");

btnplus.addMouseListener(new MouseAdapter() {

@Override

public void mouseClicked(MouseEvent e) {

if(!txtio.getText().isEmpty())

{
objCalc.setNum1(Double.parseDouble(txtio.getText()));

objCalc.setOpt('+');

txtio.setText("");

});

btnplus.setFont(new Font("Tahoma", Font.BOLD, 18));

btnplus.setBounds(241, 82, 65, 42);

contentPane.add(btnplus);

JButton btnminus = new JButton("-");

btnminus.addMouseListener(new MouseAdapter() {

@Override

public void mouseClicked(MouseEvent e) {

if(!txtio.getText().isEmpty())

objCalc.setNum1(Double.parseDouble(txtio.getText()));

objCalc.setOpt('-');

txtio.setText("");

});

btnminus.setFont(new Font("Tahoma", Font.BOLD, 18));

btnminus.setBounds(239, 149, 65, 45);

contentPane.add(btnminus);

JButton btnmultiply = new JButton("x");

btnmultiply.addMouseListener(new MouseAdapter() {

@Override

public void mouseClicked(MouseEvent e) {


if(!txtio.getText().isEmpty())

objCalc.setNum1(Double.parseDouble(txtio.getText()));

objCalc.setOpt('x');

txtio.setText("");

});

btnmultiply.setFont(new Font("Tahoma", Font.BOLD, 18));

btnmultiply.setBounds(239, 213, 65, 45);

contentPane.add(btnmultiply);

JButton btndivide = new JButton("/");

btndivide.addMouseListener(new MouseAdapter() {

@Override

public void mouseClicked(MouseEvent e) {

if(!txtio.getText().isEmpty())

objCalc.setNum1(Double.parseDouble(txtio.getText()));

objCalc.setOpt('/');

txtio.setText("");

});

btndivide.setFont(new Font("Tahoma", Font.BOLD, 18));

btndivide.setBounds(234, 266, 72, 45);

contentPane.add(btndivide);

JButton btnequal = new JButton("=");


btnequal.addMouseListener(new MouseAdapter() {

@Override

public void mouseClicked(MouseEvent e) {

if(!txtio.getText().isEmpty())

objCalc.setNum2(Double.parseDouble(txtio.getText()));

txtio.setText(objCalc.calculate());

});

btnequal.setFont(new Font("Tahoma", Font.BOLD, 18));

btnequal.setBounds(14, 269, 65, 42);

contentPane.add(btnequal);

JButton acbutton = new JButton("AC");

acbutton.addMouseListener(new MouseAdapter() {

@Override

public void mouseClicked(MouseEvent e) {

txtio.setText("");

});

acbutton.setFont(new Font("Tahoma", Font.BOLD, 18));

acbutton.setBounds(182, 48, 124, 23);

contentPane.add(acbutton);

}
Calculator code:

package controller;

public class calculator_logic {

// Data members
double num1;
double num2;
char opt;

//Constructor
public calculator_logic() {

super();

this.num1=0.0;
this.num2=0.0;

public calculator_logic(double num1, double num2) {


super();
this.num1 = num1;
this.num2 = num2;
}

//Setters and getters


public char getOpt() {
return opt;
}

public void setOpt(char opt) {


this.opt = opt;
}
public double getNum1() {
return num1;
}

public void setNum1(double num1) {


this.num1 = num1;
}

public double getNum2() {


return num2;
}

public void setNum2(double num2) {


this.num2 = num2;
}

//Logical functions
public double addition()
{
return this.num1+this.num2;
}

public double subtraction() {


return this.num1-this.num2;
}

public double multiplication()


{
return this.num1*this.num2;

public double division()


{
if(this.num2!=0)
{
return(this.num1/this.num2);

}
else

return num1;
}

public String calculate()


{
if(this.getOpt()=='+')
{
return this.addition()+"";
}
else if( this.getOpt()=='-')
{
return this.subtraction()+"";
}
else if (this.getOpt()=='x')
{
return this.multiplication()+"";
}
else if (this.getOpt()=='/')
{
return this.division()+"";
}
return null;
}
}
Output:

You might also like

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy