الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

آلة حاسبة أخرى

مغلق
بدأه m_lahlouh في 17 يونيو 2004 · 1 رد · 528 مشاهدة · في JavaSE
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع
/*******************************\
 *	بسم الله الرحمن الرحيم    *
 *	محمد لحلوح   	 *
 *	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

mohammadlahlouh.blogspot.com

Make money from your Website or Blog with BidVertiser

#2

شكرا لك و اعذرني لتعديل مشاركتك

Theory is when you know something, but it doesn't work. Practice is when something works, but you don't know why. Programmers combine theory and practice: Nothing works and they don't know why

هذا الموضوع مغلق.

مواضيع مشابهة