Upload
muhammad-rana-farhan
View
220
Download
0
Embed Size (px)
Citation preview
8/14/2019 Graphical Calculator - JAVA
1/8
Calculator============================================
/* ================== API's ================= */
import javax.swing.*;
import java.awt.*;import java.awt.event.*;
/* ============== CALCULATOR CLASS ============= */
class Calculator implements ActionListener{
//CONSTRUCTOR
public Calculator(){f=new JFrame("Calculator");f.setSize(350,350);
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);f.setResizable(false);
JMenuBar menu=new JMenuBar();f.setJMenuBar(menu);JMenu edit=new JMenu("Edit");menu.add(edit);
JMenuItem copy=new JMenuItem("Copy Ctrl+C");edit.add(copy);
JMenuItem paste=new JMenuItem("Paste Ctrl+V");edit.add(paste);
JMenu view=new JMenu("View");menu.add(view);
JMenuItem std=new JMenuItem("Standard");
view.add(std);JMenuItem sci=new JMenuItem("Scientific");view.add(sci);
JMenuItem dg=new JMenuItem("Digit Grouping");view.add(dg);
JMenu help=new JMenu("Help");
menu.add(help);JMenuItem ht=new JMenuItem("Help Topics");
help.add(ht);
8/14/2019 Graphical Calculator - JAVA
2/8
JMenuItem cal=new JMenuItem("About Calculator");
help.add(cal);
//BORDER LAYOUT
f.setLayout(new BorderLayout(5,5));p1=new JPanel();
bl= new BorderLayout();p1.setLayout(bl);
//GRID LAYOUT ON WESTp2=new JPanel();p2.setLayout(new GridLayout(4,1));UIManager.put("Button.background", Color.BITMASK);
UIManager.put("Button.foreground", Color.red);JButton b[]=new JButton[27];
b1=new JButton("MC");b2=new JButton("MR");
b3=new JButton("MS");
b4=new JButton("M+");
p2.add(b1);
p2.add(b2);p2.add(b3);p2.add(b4);f.add(p2,BorderLayout.WEST);
//GRID LAYOUT ON EASTp3=new JPanel();
p3.setLayout(new GridLayout(4,1));UIManager.put("Button.foreground", Color.blue);
b5=new JButton("sqrt");b6=new JButton("%");
b7=new JButton("1/x");UIManager.put("Button.foreground", Color.red);
b8=new JButton("=");p3.add(b5);
p3.add(b6);p3.add(b7);p3.add(b8);
f.add(p3,BorderLayout.EAST);
//GRID LAYOUT ON NORTH
p4=new JPanel();
8/14/2019 Graphical Calculator - JAVA
3/8
p4.setLayout(new GridLayout(1,3));
b9=new JButton("Backspace");b10=new JButton("C");
b11=new JButton("CE");tf1=new JTextField(26);
tf1.setHorizontalAlignment(JTextField.RIGHT);p4.add(tf1);p4.add(b9);p4.add(b10);
p4.add(b11);p1.add(p4,BorderLayout.CENTER);
p1.add(tf1,BorderLayout.NORTH);f.add(p1,BorderLayout.NORTH);
//GRID LAYOUT ON CENTERp5=new JPanel();p5.setLayout(new GridLayout(4,4));
UIManager.put("Button.foreground", Color.blue);b12=new JButton("7");
b13=new JButton("8");b14=new JButton("9");
b16=new JButton("4");b17=new JButton("5");
b18=new JButton("6");b20=new JButton("1");
b21=new JButton("2");b22=new JButton("3");
b24=new JButton("0");b25=new JButton("+/-");
b26=new JButton(".");UIManager.put("Button.foreground", Color.red);
b15=new JButton("/");b27=new JButton("+");b23=new JButton("-");
b19=new JButton("*");p5.add(b12);
p5.add(b13);p5.add(b14);
p5.add(b15);p5.add(b16);
p5.add(b17);p5.add(b18);
p5.add(b19);
8/14/2019 Graphical Calculator - JAVA
4/8
p5.add(b20);
p5.add(b21);p5.add(b22);
p5.add(b23);p5.add(b24);
p5.add(b25);p5.add(b26);p5.add(b27);f.add(p5,BorderLayout.CENTER);
/////////REGISTRATION OF EVENT//////////b5.addActionListener(this);
b5.setActionCommand("sqrt");b6.addActionListener(this);
b6.setActionCommand("%");b7.addActionListener(this);b7.setActionCommand("1/x");
b8.addActionListener(this);b8.setActionCommand("=");
b10.addActionListener(this);b10.setActionCommand("C");
b11.addActionListener(this);b11.setActionCommand("CE");
b12.addActionListener(this);b12.setActionCommand("7");
b13.addActionListener(this);b13.setActionCommand("8");
b14.addActionListener(this);b14.setActionCommand("9");
b15.addActionListener(this);b15.setActionCommand("/");
b16.addActionListener(this);b16.setActionCommand("4");b17.addActionListener(this);
b17.setActionCommand("5");b18.addActionListener(this);
b18.setActionCommand("6");b19.addActionListener(this);
b19.setActionCommand("*");b20.addActionListener(this);
b20.setActionCommand("1");b21.addActionListener(this);
b21.setActionCommand("2");
8/14/2019 Graphical Calculator - JAVA
5/8
b22.addActionListener(this);
b22.setActionCommand("3");b23.addActionListener(this);
b23.setActionCommand("-");b24.addActionListener(this);
b24.setActionCommand("0");b25.addActionListener(this);b25.setActionCommand("+/-");b26.addActionListener(this);
b26.setActionCommand(".");b27.addActionListener(this);
b27.setActionCommand("+");tf1.setText("0.");
f.setVisible(true);}
////////////EVENT LISTENER/HANDLER//////////
int num1=0,num2=0;String Check;StringBuilder sb=new StringBuilder();public void actionPerformed(ActionEvent e){
int res;String str=e.getActionCommand();
if(str.equals("0")){sb.append("0");
tf1.setText(sb.toString());}
else if(str.equals("1")){sb.append("1");
tf1.setText(sb.toString());}
else if(str.equals("2")){sb.append("2");tf1.setText(sb.toString());
}else if(str.equals("3")){
sb.append("3");tf1.setText(sb.toString());
}else if(str.equals("4")){
sb.append("4");tf1.setText(sb.toString());
}
8/14/2019 Graphical Calculator - JAVA
6/8
else if(str.equals("5")){
sb.append("5");tf1.setText(sb.toString());
}else if(str.equals("6")){
sb.append("6");tf1.setText(sb.toString());
}else if(str.equals("7")){
sb.append("7");tf1.setText(sb.toString());
}else if(str.equals("8")){
sb.append("8");tf1.setText(sb.toString());
}
else if(str.equals("9")){sb.append("9");
tf1.setText(sb.toString());}
else if(str.equals("+")){num1=Integer.parseInt(tf1.getText());
Check="PLUS";sb=new StringBuilder();
}else if(str.equals("-")){
num1=Integer.parseInt(tf1.getText());Check="MINUS";
sb=new StringBuilder();}
else if(str.equals("*")){
num1=Integer.parseInt(tf1.getText());Check="PRODUCT";
sb=new StringBuilder();}
else if(str.equals("/")){
num1=Integer.parseInt(tf1.getText());Check="DIVIDE";sb=new StringBuilder();
}
else if(str.equals("=")){
num2=Integer.parseInt(tf1.getText());if(Check.equals("PLUS")){
8/14/2019 Graphical Calculator - JAVA
7/8
res=num1+num2;
tf1.setText(""+res);sb=new StringBuilder();
}else if(Check.equals("MINUS")){
res=num1-num2;tf1.setText(""+res);sb=new StringBuilder();
}
else if(Check.equals("PRODUCT")){res=num1*num2;
tf1.setText(""+res);sb=new StringBuilder();
}else if(Check.equals("DIVIDE")){
res=num1/num2;
tf1.setText(""+res);sb=new StringBuilder();
}}
else if(str.equals("C")){tf1.setText("0");
}else if(str.equals("CE")){
tf1.setText("0");}
else if(str.equals("1/x")){float num3=Integer.parseInt(tf1.getText());
float num4=num3*num3;float res1=num3/num4;
tf1.setText(""+res1);
sb=new StringBuilder();}
else if(str.equals("+/-")){num1=Integer.parseInt(tf1.getText());
res=num1*(-1);
tf1.setText(""+res);sb=new StringBuilder();}
else if(str.equals("sqrt")){double num5=Integer.parseInt(tf1.getText());double res2=Math.sqrt(num5);tf1.setText(""+res2);
sb=new StringBuilder();
8/14/2019 Graphical Calculator - JAVA
8/8
}
else if(str.equals("%")){float num6=Integer.parseInt(tf1.getText());
float num7=Integer.parseInt(tf1.getText());float res3=(num6/100)*num7;
tf1.setText(""+res3);sb=new StringBuilder();
}else if(str.equals(".")){
double num8=Integer.parseInt(tf1.getText());double res4=num8;
tf1.setText(""+res4+".");sb=new StringBuilder();
}}
//PRIVATE MEMBERS
private JFrame f;private JTextField tf1;private BorderLayout bl;private JPanel p1,p2,p3,p4,p5;
private JButtonb1,b2,b3,b4,b5,b6,b7,b8,b9,b10,b11,b12,b13,b14,
b15,b16,b17,b18,b19,b20,b21,b22,b23,b24,b25,b26,b27;}
//////////////////////CLIENT PROGRAM///////////////////
class Main{public static void main(String a[]){
Calculator cal=new Calculator();
}}
http://www.ravianeducation.blogspot.com
FARHAN: 03008855006