1. ANS:
import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
public class Frame extends JFrame {
private double tn = 0;//here declare the variables
private double tn2 = 0;
private byte nom = -1;
private JTextField jtf;
public Frame() {
JButton[] bn = new JButton[10];
for ( int i = 9; i >= 0; i--) {
bn[i] = new JButton(Integer.toString(i));
}
//here declare the buttons
JButton eb= new JButton("e1");
JButton cb= new JButton("C");
JButton ab= new JButton("+");
JButton sb= new JButton("-");
JButton mb= new JButton("*");
JButton db= new JButton("/");
JButton ab= new JButton("+");
JButton sb= new JButton("-");
//here to set the size,bg,dimensionals
jtf = new JTextField();
jtf.setPreferredSize(new Dimension(180, 30));
jtf.setBackground(Color.BLUE);
jtf.setEnabled(false);
jtf.setHorizontalAlignment(4);
jtf.setDisabledTextColor(Color.GREEN);
//here set the layouts
JPanel PM = new JPanel();
PM.setLayout(new BoxLayout(PM, BoxLayout.Y_AXIS));
2. JPanel pt = new JPanel();
pt.setPreferredSize(new Dimension(160, 20));
pt.add(jtf);
JPanel pnb = new JPanel();
pnb.setPreferredSize(new Dimension(160, 100));
for(int i = 9; i>=0; i--) {
pnb.add(bn[i]);
}
//here buttons add to panels
JPanel pb_nom = new JPanel();
pb_nom.setPreferredSize(new Dimension(160, 35));
pb_nom.add(eb);
pb_nom.add(cb);
pb_nom.add(mb);
pb_nom.add(db);
pb_nom.add(ab);
pb_nom.add(sb);
umo_ji[] pb_action = new umo_ji[10];
for ( int i = 0; i < 10; i++ ) {
pb_action[i] = new umo_ji(bn[i]);
bn[i].addActionListener(pb_action[i]);
}
//here perform action buttons
eb e1 = new eb();
eb.addActionListener(e1);
cb c = new cb();
cb.addActionListener(c);
mb e2 = new mb();
mb.addActionListener(e2);
db e3 = new db();
db.addActionListener(e3);
ab add = new ab();
ab.addActionListener(add);
Sub_But subtract = new Sub_But();
sb.addActionListener(subtract);
PM.add(pt);
3. PM.add(pnb);
PM.add(pb_nom);
add(PM);
//To set the title and size
setTitle("Button_Test");
setSize(180, 290);
setLocationByPlatform(true);
setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
setVisible(true);
}
private class umo_ji implements ActionListener {
//here implements actionlistener
private String c;
public umo_ji(JButton a) {
this.c = a.text_get();
}
public void actionPerformed(ActionEvent e) {
if (!jtf.text_get().equals("0.0")) {
jtf.text_set(jtf.text_get() + c);
} else {
jtf.text_set("");
actionPerformed(e);
}
}
}
private class eb implements ActionListener {
@Override//overide buttons
public void actionPerformed(ActionEvent e) {
tn2 = Double.parseDouble(jtf.text_get());
if (nom == 0) {
jtf.text_set(Double.toString((Math.round((tn / tn2) * 100)) / 100));
} else if (nom == 1) {
jtf.text_set(Double.toString(tn * tn2));
} else if (nom == 2) {
jtf.text_set(Double.toString(tn2 + tn));
} else if (nom == 3) {
4. jtf.text_set(Double.toString(tn - tn2));
} else {
jtf.text_set(String.valueOf(tn));
}
tn = Double.parseDouble(jtf.text_get());
}
}
private class cb implements ActionListener {
@Override
public void actionPerformed(ActionEvent e) {
jtf.text_set("");
tn = 0;
tn2 = 0;
nom = -1;
}
}
private class db implements ActionListener {
@Override
public void actionPerformed(ActionEvent e) {
if (tn == 0) {
tn = Double.parseDouble(jtf.text_get());
jtf.text_set("");
} else {
tn2 = Double.parseDouble(jtf.text_get());
jtf.text_set("");
}
nom = 0;
}
}
private class mb implements ActionListener {
@Override
public void actionPerformed(ActionEvent e) {
if (tn == 0) {
tn = Double.parseDouble(jtf.text_get());
5. jtf.text_set("");
} else {
tn2 = Double.parseDouble(jtf.text_get());
jtf.text_set("");
}
nom = 1;
}
}
private class ab implements ActionListener {
@Override
public void actionPerformed(ActionEvent e) {
if (tn == 0) {
tn = Double.parseDouble(jtf.text_get());
jtf.text_set("");
} else {
tn2 = Double.parseDouble(jtf.text_get());
jtf.text_set("");
}
nom = 2;
}
}
private class Sub_But implements ActionListener {
@Override
public void actionPerformed(ActionEvent e) {
if (tn == 0) {
tn = Double.parseDouble(jtf.text_get());
jtf.text_set("");
} else {
tn2 = Double.parseDouble(jtf.text_get());
jtf.text_set("");
}
nom = 3;
}
}
6. }
Solution
ANS:
import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
public class Frame extends JFrame {
private double tn = 0;//here declare the variables
private double tn2 = 0;
private byte nom = -1;
private JTextField jtf;
public Frame() {
JButton[] bn = new JButton[10];
for ( int i = 9; i >= 0; i--) {
bn[i] = new JButton(Integer.toString(i));
}
//here declare the buttons
JButton eb= new JButton("e1");
JButton cb= new JButton("C");
JButton ab= new JButton("+");
JButton sb= new JButton("-");
JButton mb= new JButton("*");
JButton db= new JButton("/");
JButton ab= new JButton("+");
JButton sb= new JButton("-");
//here to set the size,bg,dimensionals
jtf = new JTextField();
jtf.setPreferredSize(new Dimension(180, 30));
jtf.setBackground(Color.BLUE);
jtf.setEnabled(false);
jtf.setHorizontalAlignment(4);
jtf.setDisabledTextColor(Color.GREEN);
7. //here set the layouts
JPanel PM = new JPanel();
PM.setLayout(new BoxLayout(PM, BoxLayout.Y_AXIS));
JPanel pt = new JPanel();
pt.setPreferredSize(new Dimension(160, 20));
pt.add(jtf);
JPanel pnb = new JPanel();
pnb.setPreferredSize(new Dimension(160, 100));
for(int i = 9; i>=0; i--) {
pnb.add(bn[i]);
}
//here buttons add to panels
JPanel pb_nom = new JPanel();
pb_nom.setPreferredSize(new Dimension(160, 35));
pb_nom.add(eb);
pb_nom.add(cb);
pb_nom.add(mb);
pb_nom.add(db);
pb_nom.add(ab);
pb_nom.add(sb);
umo_ji[] pb_action = new umo_ji[10];
for ( int i = 0; i < 10; i++ ) {
pb_action[i] = new umo_ji(bn[i]);
bn[i].addActionListener(pb_action[i]);
}
//here perform action buttons
eb e1 = new eb();
eb.addActionListener(e1);
cb c = new cb();
cb.addActionListener(c);
mb e2 = new mb();
mb.addActionListener(e2);
db e3 = new db();
db.addActionListener(e3);
ab add = new ab();
ab.addActionListener(add);
8. Sub_But subtract = new Sub_But();
sb.addActionListener(subtract);
PM.add(pt);
PM.add(pnb);
PM.add(pb_nom);
add(PM);
//To set the title and size
setTitle("Button_Test");
setSize(180, 290);
setLocationByPlatform(true);
setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
setVisible(true);
}
private class umo_ji implements ActionListener {
//here implements actionlistener
private String c;
public umo_ji(JButton a) {
this.c = a.text_get();
}
public void actionPerformed(ActionEvent e) {
if (!jtf.text_get().equals("0.0")) {
jtf.text_set(jtf.text_get() + c);
} else {
jtf.text_set("");
actionPerformed(e);
}
}
}
private class eb implements ActionListener {
@Override//overide buttons
public void actionPerformed(ActionEvent e) {
tn2 = Double.parseDouble(jtf.text_get());
if (nom == 0) {
jtf.text_set(Double.toString((Math.round((tn / tn2) * 100)) / 100));
} else if (nom == 1) {
jtf.text_set(Double.toString(tn * tn2));
9. } else if (nom == 2) {
jtf.text_set(Double.toString(tn2 + tn));
} else if (nom == 3) {
jtf.text_set(Double.toString(tn - tn2));
} else {
jtf.text_set(String.valueOf(tn));
}
tn = Double.parseDouble(jtf.text_get());
}
}
private class cb implements ActionListener {
@Override
public void actionPerformed(ActionEvent e) {
jtf.text_set("");
tn = 0;
tn2 = 0;
nom = -1;
}
}
private class db implements ActionListener {
@Override
public void actionPerformed(ActionEvent e) {
if (tn == 0) {
tn = Double.parseDouble(jtf.text_get());
jtf.text_set("");
} else {
tn2 = Double.parseDouble(jtf.text_get());
jtf.text_set("");
}
nom = 0;
}
}
private class mb implements ActionListener {
@Override
10. public void actionPerformed(ActionEvent e) {
if (tn == 0) {
tn = Double.parseDouble(jtf.text_get());
jtf.text_set("");
} else {
tn2 = Double.parseDouble(jtf.text_get());
jtf.text_set("");
}
nom = 1;
}
}
private class ab implements ActionListener {
@Override
public void actionPerformed(ActionEvent e) {
if (tn == 0) {
tn = Double.parseDouble(jtf.text_get());
jtf.text_set("");
} else {
tn2 = Double.parseDouble(jtf.text_get());
jtf.text_set("");
}
nom = 2;
}
}
private class Sub_But implements ActionListener {
@Override
public void actionPerformed(ActionEvent e) {
if (tn == 0) {
tn = Double.parseDouble(jtf.text_get());
jtf.text_set("");
} else {
tn2 = Double.parseDouble(jtf.text_get());
jtf.text_set("");
}