Question: Create a GUI application in java for a calculator that can perform logical operations such as And, Or , Xor, Not, Shift Left, and Shift

Create a GUI application in java for a calculator that can perform logical operations such as And, Or, Xor, Not, Shift Left, and Shift Right. The calculator includes buttons 0 to 9, plus buttons labeled A, B, C, D, E, and F for entering a number in hexadecimal format. The user can select the input number radix from Binary, Decimal, or Hexadecimal from three radio buttons. If the Binary radio button is selected, only buttons 0 and 1 should be enabled and all the others should be disabled. if the Decimal radio button is selected, buttons labeled A, B, C, D, E, and F should be disabled. Check the following sample layout of the project (check the Microsoft Calculator application in programmer mode for more details)
Our proffesor gave this code as an example:
User
class calculator extends JFrame implements ActionListener {
// create a frame
static JFrame f;
// create a textfield
static JTextField l;
// store oprerator and operands
String s0, s1, s2;
// default constrcutor
calculator()
{
s0= s1= s2="";
f = new JFrame("calculator");
// try {
// set look and feel
// UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
//}
// catch (Exception e){
// System.err.println(e.getMessage());
//}
// create a object of class
// create a textfield
l = new JTextField(16);
// set the textfield to non editable
l.setEditable(false);
// create number buttons and some operators
JButton b0, b1, b2, b3, b4, b5, b6, b7, b8, b9, ba, bs, bd, bm, be, beq, beq1;
// create number buttons
b0= new JButton("0");
b1= new JButton("1");
b2= new JButton("2");
b3= new JButton("3");
b4= new JButton("4");
b5= new JButton("5");
b6= new JButton("6");
b7= new JButton("7");
b8= new JButton("8");
b9= new JButton("9");
// equals button
beq1= new JButton("=");
// create operator buttons
ba = new JButton("+");
bs = new JButton("-");
bd = new JButton("/");
bm = new JButton("*");
beq = new JButton("C");
// create . button
be = new JButton(".");
// create a panel
JPanel p = new JPanel();
// add action listeners
bm.addActionListener(this);
bd.addActionListener(this);
bs.addActionListener(this);
ba.addActionListener(this);
b9.addActionListener(this);
b8.addActionListener(this);
b7.addActionListener(this);
b6.addActionListener(this);
b5.addActionListener(this);
b4.addActionListener(this);
b3.addActionListener(this);
b2.addActionListener(this);
b1.addActionListener(this);
b0.addActionListener(this);
be.addActionListener(this);
beq.addActionListener(this);
beq1.addActionListener(this);
// add elements to panel
p.add(l);
p.add(ba);
p.add(b1);
p.add(b2);
p.add(b3);
p.add(bs);
p.add(b4);
p.add(b5);
p.add(b6);
p.add(bm);
p.add(b7);
p.add(b8);
p.add(b9);
p.add(bd);
p.add(be);
p.add(b0);
p.add(beq);
p.add(beq1);
// set Background of panel
p.setBackground(Color.GRAY);
// add panel to frame
f.add(p);
f.setSize(200,220);
f.show();
}
// main function
public void actionPerformed(ActionEvent e)
{
String s = e.getActionCommand();
// if the value is a number
if ((s.charAt(0)>='0' && s.charAt(0)<='9')|| s.charAt(0)=='.'){
// if operator is present then add to second operand
if (!s1.equals(""))
s2= s2+ s;
else
s0= s0+ s;
// set the value of text
l.setText(s0+ s1+ s2);
}
else if (s.charAt(0)=='C'){
// clear the one letter
s0= s1= s2="";
// set the value of text
l.setText(s0+ s1+ s2);
}
else if (s.charAt(0)=='='){
double te;
// store the value in 1st
if (s1.equals("+"))
te =(Double.parseDouble(s0)+ Double.parseDouble(s2));
else if (s1.equals("-"))
te =(Double.parseDouble(s0)- Double.parseDouble(s2));
else if (s1.equals("/"))
te =(Double.parseDouble(s0)/ Double.parseDouble(s2));
else
te =(Double.parseDouble(s0)* Double.parseDouble(s2));
// set the value of text
l.setText(s0+ s1+ s2+"="+ te);
// convert it to string
s0= Double.toString(te);
s1= s2="";
}
else {
// if there was no operand
if (s1.equals("")|| s2.equals(""))
s1= s;
// else evaluate
else {
double te;
// store the value in 1st
if (s1.equals("+"))
te =(Double.parseDouble(s0)+ Double.parseDouble(s2));
else if (s1.equals("-"))
te =(Double.parseDouble(s0)- Double.parseDouble(s2));
else if (s1.equals("/"))
te =(Double.parseDouble(s0)/ Double.parseDouble(s2));
else
te =(Double.parseDouble(s0)* Double.parseDouble(s2));
// convert it to string
s0= Double.toString(te);
// place the operator
s1= s;
// make the operand blank
s2="";
}
// set the value of text
l.setText(s0+ s1+ s2);
}
}
}
import java.awt.event.*;
import javax.swing.*;
import java.awt.*;
class Main {

Step by Step Solution

There are 3 Steps involved in it

1 Expert Approved Answer
Step: 1 Unlock blur-text-image
Question Has Been Solved by an Expert!

Get step-by-step solutions from verified subject matter experts

Step: 2 Unlock
Step: 3 Unlock

Students Have Also Explored These Related Databases Questions!