/*******************************\
* بسم الله الرحمن الرحيم *
* محمد لحلوح *
* Mohammad Lahlouh *
* Jordan +962796811770 *
* *
\***************************/
import java.awt.*;
import java.awt.event.*;
import java.applet.*;
import javax.swing.*;
public class CalcApp extends JFrame {
JTextField TxtRe;
JMenu fileMenu, editMenu;
JMenuItem aboutItem, exitItem,
copyItem, pasteItem;
JMenuBar bar;
JLabel statusBar;
JFrame frame;
JPanel keypad;
JButton B_No[], //keypad
B_Sin,B_Cos,B_Tan,
B_Sqrt,B_Sqr,B_Inv,
B_PN,B_Add,B_Sub,
B_Mul,B_Div,B_Mod,
B_Equal,B_Dot,B_Clear,
B_CE,B_Backspace,B_Close;
Container cont = getContentPane();
boolean oneDot=false,
switchClear=false;
String Temp="";
int operat;
public static void main( String args[] ){
CalcApp window = new CalcApp();
window.setBounds(200,100,305,325);
window.setSize(440, 375 );
window.setVisible( true );
window.setResizable(false);
window.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
} // end main
public CalcApp() {
super("Calculator");
cont.setLayout(null);
ActionEventHandler handler = new ActionEventHandler();
fileMenu = new JMenu("File");
editMenu = new JMenu("Edit");
fileMenu.setMnemonic('f');
editMenu.setMnemonic('e');
exitItem = new JMenuItem("Exit");
aboutItem = new JMenuItem("About...");
copyItem = new JMenuItem("Copy");
pasteItem = new JMenuItem("Paste");
exitItem.setMnemonic('x');
aboutItem.setMnemonic('a');
copyItem.setMnemonic('c');
pasteItem.setMnemonic('p');
fileMenu.add(aboutItem);
fileMenu.add(exitItem);
editMenu.add(copyItem);
editMenu.add(pasteItem);
aboutItem.addActionListener(handler);
exitItem.addActionListener(handler);
copyItem.addActionListener(handler);
pasteItem.addActionListener(handler);
bar = new JMenuBar();
setJMenuBar(bar);
bar.add(fileMenu);
bar.add(editMenu);
TxtRe = new JTextField("");
TxtRe.setFocusable(true);
TxtRe.setBounds(40,30,359,20);
cont.add(TxtRe);
statusBar = new JLabel(" Mohammad Lahlouh, ID# 30219001509");
statusBar.setBounds(0,300,440,20);
statusBar.setFont(new Font("ARIAL", Font.BOLD+Font.ITALIC,15));
cont.add(statusBar);
keypad = new JPanel(new GridLayout(4,6,1,1));
B_No = new JButton[10];
for (int i=0; i<B_No.length; i++){
B_No = new JButton(Integer.toString(i));
B_No.addActionListener(handler);
}
cont.setForeground(Color.BLUE);
B_Sin = new JButton("Sin");
B_Cos = new JButton("Cos");
B_Tan = new JButton("Tan");
B_Sqr = new JButton("Sqr");
B_Sqrt = new JButton("Sqrt");
B_Inv = new JButton("1/x");
B_Equal = new JButton("=");
B_Equal.setForeground(Color.RED);
B_PN = new JButton("+/-");
B_Div = new JButton("/");
B_Div.setForeground(Color.RED);
B_Mul = new JButton("*");
B_Mul.setForeground(Color.RED);
B_Sub = new JButton("-");
B_Sub.setForeground(Color.RED);
B_Dot = new JButton(".");
B_Mod = new JButton("Mod");
B_Add = new JButton("+");
B_Add.setForeground(Color.RED);
keypad.add(B_No[7]);
keypad.add(B_No[8]);
keypad.add(B_No[9]);
keypad.add(B_Div);
keypad.add(B_Sqrt);
keypad.add(B_Sqr);
keypad.add(B_No[4]);
keypad.add(B_No[5]);
keypad.add(B_No[6]);
keypad.add(B_Mul);
keypad.add(B_Inv);
keypad.add(B_Sin);
keypad.add(B_No[1]);
keypad.add(B_No[2]);
keypad.add(B_No[3]);
keypad.add(B_Sub);
keypad.add(B_Mod);
keypad.add(B_Cos);
keypad.add(B_No[0]);
keypad.add(B_PN);
keypad.add(B_Dot);
keypad.add(B_Add);
keypad.add(B_Equal);
keypad.add(B_Tan);
B_CE = new JButton("CE");
B_CE.setBounds(160,60,119,35);
B_CE.setForeground(Color.RED);
cont.add(B_CE);
B_Backspace = new JButton("Backspace");
B_Backspace.setBounds(40,60,119,35);
B_Backspace.setForeground(Color.RED);
cont.add(B_Backspace);
B_Clear = new JButton("C");
B_Clear.setBounds(280,60,119,35);
B_Clear.setForeground(Color.RED);
cont.add(B_Clear);
B_Close = new JButton ("Close");
B_Close.setBounds(185, 255, 70, 35);
B_Close.setForeground(Color.RED);
cont.add(B_Close);
B_Sin.addActionListener( handler);
B_Cos.addActionListener( handler);
B_Tan.addActionListener( handler);
B_Sqr.addActionListener( handler);
B_Sqrt.addActionListener( handler);
B_Inv.addActionListener( handler);
B_Div.addActionListener( handler );
B_Mul.addActionListener( handler );
B_PN.addActionListener( handler );
B_Clear.addActionListener( handler );
B_CE.addActionListener( handler);
B_Backspace.addActionListener( handler);
B_Close.addActionListener( handler );
B_Add.addActionListener( handler );
B_Sub.addActionListener( handler );
B_Equal.addActionListener( handler );
B_Mod.addActionListener( handler );
B_Dot.addActionListener( handler );
keypad.setBounds(40,100,360,150);
cont.add(keypad);
}
private class ActionEventHandler implements ActionListener {
public void actionPerformed(ActionEvent evt){
String T;
if(evt.getSource()==copyItem){
TxtRe.copy();
}
if(evt.getSource()==pasteItem){
TxtRe.paste();
}
if(evt.getSource()==aboutItem){
JOptionPane.showMessageDialog(null,
" Mohammad Lahlouh\n"
+" 30219001509",
"AboutMe",
JOptionPane.OK_OPTION+JOptionPane.PLAIN_MESSAGE);
}
if(evt.getSource()==exitItem){
System.exit(0);
}
for (int k=0; k<B_No.length; k++){
if(evt.getSource()==B_No[k]){
if (switchClear ==false){
T = TxtRe.getText();
TxtRe.setText(T+k);
}
else
{
Temp = TxtRe.getText();
TxtRe.setText(Integer.toString(k));
switchClear = false;
}
}
}
if(evt.getSource()==B_Sin){
TxtRe.setText(""+ Math.sin(Math.PI*Double.parseDouble(TxtRe.getText())/180));
switchClear = true;
}
if(evt.getSource()==B_Cos){
TxtRe.setText(""+ Math.cos(Math.PI*Double.parseDouble(TxtRe.getText())/180));
switchClear = true;
}
if(evt.getSource()==B_Tan){
TxtRe.setText(""+ Math.tan(Math.PI*Double.parseDouble(TxtRe.getText())/180));
switchClear = true;
}
if (evt.getSource()==B_Sqr){
TxtRe.setText(""+Math.pow(Double.parseDouble(TxtRe.getText()),2));
switchClear = true;
}
if(evt.getSource()==B_Sqrt){
TxtRe.setText(""+ Math.sqrt(Double.parseDouble(TxtRe.getText())));
switchClear = true;
}
if(evt.getSource()==B_Inv){
TxtRe.setText(""+ 1/Double.parseDouble(TxtRe.getText()));
switchClear = true;
}
if(evt.getSource()==B_Dot){
if (switchClear ==false){
if (oneDot==false){
T = TxtRe.getText();
TxtRe.setText(T+".");
}
}
else
{
if (oneDot==false){
Temp = TxtRe.getText();
TxtRe.setText("0.");
switchClear = false;
}
}
oneDot=true;
}
if (evt.getSource()==B_Clear){
TxtRe.setText("");
Temp="0";
oneDot=false;
}
if (evt.getSource()==B_CE){
TxtRe.setText("");
oneDot=false;
}
if (evt.getSource()==B_Backspace){
if (TxtRe.getText().length()!=0)
TxtRe.setText(TxtRe.getText().substring(0,TxtRe.getText().length()-1));
}
if (evt.getSource()==(B_Add)){
operat = 1;
switchClear = true;
oneDot=false;
}
if (evt.getSource()==(B_Sub)){
operat = 2;
switchClear = true;
oneDot=false;
}
if (evt.getSource()==(B_Mul)){
operat = 3;
switchClear = true;
oneDot=false;
}
if (evt.getSource()==(B_Div)){
operat = 4;
switchClear = true;
oneDot=false;
}
if (evt.getSource()==(B_Mod)){
operat = 5;
switchClear = true;
oneDot=false;
}
if (evt.getSource()==(B_PN)){
if (switchClear == false){
if(TxtRe.getText().length()==0)
TxtRe.setText("-");
else
if(TxtRe.getText().charAt(0)!='-'){
TxtRe.setText(""+Double.parseDouble(TxtRe.getText()) * (-1));
oneDot=true;
}
else{
TxtRe.setText(TxtRe.getText().substring(1,TxtRe.getText().length()));
oneDot=true;
}
}
else
{
Temp = TxtRe.getText();
TxtRe.setText("-");
switchClear = false;
}
}
if (evt.getSource()==(B_Equal)){
double result;
switch (operat){
case 1:
result = Double.parseDouble(Temp) + Double.parseDouble(TxtRe.getText());
Temp = TxtRe.getText();
TxtRe.setText(Double.toString(result));
break;
case 2:
result = Double.parseDouble(Temp) - Double.parseDouble(TxtRe.getText());
Temp = TxtRe.getText();
TxtRe.setText(Double.toString(result));
break;
case 3:
result = Double.parseDouble(Temp) * Double.parseDouble(TxtRe.getText());
Temp = TxtRe.getText();
TxtRe.setText(Double.toString(result));
break;
case 4:
if(Double.parseDouble(Temp)==0 &&
Double.parseDouble(TxtRe.getText())==0)
TxtRe.setText("Illegal Operation");
else
if ( Double.parseDouble(TxtRe.getText())==0)
TxtRe.setText("Cannot Divid By Zero!!");
else {
result = Double.parseDouble(Temp)/
Double.parseDouble(TxtRe.getText());
Temp = TxtRe.getText();
TxtRe.setText(Double.toString(result));
}
break;
case 5:
result = Double.parseDouble(Temp) % Double.parseDouble(TxtRe.getText());
Temp = TxtRe.getText();
TxtRe.setText(Double.toString(result));
break;
}
switchClear = true;
}
if (evt.getSource()==B_Close)
System.exit(0);
} //End Method
} //End Class
} //END OUTER CLASSتم تعديل هذه المشاركة بواسطة رامي العيساوي في 18 يونيو 2004 في 11:59
عندما تولد يا ابن آدم يؤذن في اذنك من غير صلاة...
وعندما تموت.... يصلى عليك من غير آذان....
فكأن حياتك في الدنيا ليست سوى... الوقت الذي تمضيه بين الأذان والصلاة...
فلا تقضيه بما لاينفع
Mohammad Lahlouh