Take BCA Tuition from the Best Tutors
Search in
How to design a calculator which performs arithmetic operations using swings?
// Java program to create a simple calculator
// with basic +, -, /, * using java swing elements
import
java.awt.event.*;
import
javax.swing.*;
import
java.awt.*;
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 =
""
;
}
// main function
public
static
void
main(String args[])
{
// create a frame
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
calculator c =
new
calculator();
// 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(c);
bd.addActionListener(c);
bs.addActionListener(c);
ba.addActionListener(c);
b9.addActionListener(c);
b8.addActionListener(c);
b7.addActionListener(c);
b6.addActionListener(c);
b5.addActionListener(c);
b4.addActionListener(c);
b3.addActionListener(c);
b2.addActionListener(c);
b1.addActionListener(c);
b0.addActionListener(c);
be.addActionListener(c);
beq.addActionListener(c);
beq1.addActionListener(c);
// 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.blue);
// add panel to frame
f.add(p);
f.setSize(
200
,
220
);
f.show();
}
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 operand is present then add to second no
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);
}
}
}
View 1 more Answers
Related Questions
Now ask question in any of the 1000+ Categories, and get Answers from Tutors and Trainers on UrbanPro.com
Ask a QuestionRecommended Articles
6 Healthy Habits of School Children
While schools provide formal education to the children, the home is where they start learning about things informally. Parents think that schools will take the initiative to educate their children. Well, this is partially true, as parents also play an essential role in bringing up their child. For the development of particular...
Top Benefits of e-Learning
With the current trend of the world going digital, electronic renaissance is a new movement that is welcomed by the new generation as it helps makes the lives of millions of people easier and convenient. Along with this rapidly changing movement and gaining popularity of Internet, e-Learning is a new tool that emerging...
The Trend of E-learning and it’s Benefits
E-learning is not just about delivering lessons online. It has a much broader scope that goes beyond manual paper or PowerPoint Presentations. To understand the reach of E-learning and how the whole process works in developing the Educational system, we will discuss a few points here. Let us find out how this new learning...
How To Choose The Right School For Children?
Quality education does not only help children to get a successful career and life, but it also hugely contributes to society. The formal education of every child starts from school. Although there are numerous schools, parents find it challenging to choose the right one that would fit their child. It is difficult for them...
Looking for BCA Tuition ?
Learn from the Best Tutors on UrbanPro
Are you a Tutor or Training Institute?
Join UrbanPro Today to find students near youThe best tutors for BCA Tuition Classes are on UrbanPro
The best Tutors for BCA Tuition Classes are on UrbanPro