• Web sitemizin içeriğine ve tüm hizmetlerimize erişim sağlamak için Web sitemize kayıt olmalı ya da giriş yapmalısınız. Web sitemize üye olmak tamamen ücretsizdir.
  • Sohbetokey.com ile canlı okey oynamaya ne dersin? Hem sohbet et, hem mobil okey oyna!
  • Soru mu? Sorun mu? ''Bir Sorum Var?'' sistemimiz aktiftir. Paylaşın beraber çözüm üretelim.
Bu, hızlı yüklenen mobil optimize edilmiş bir AMP sayfadır, gerçek sayfayı yüklemek istiyorsanız bu metni tıklayın.

Java ile Yazılmış Bir Hesap Makinesi Örneği

Üyelik Tarihi
7 Ocak 2015
Konular
4,091
Mesajlar
4,274
MFC Puanı
40
Kod:
import java.awt.BorderLayout;
             import java.awt.Button;
             import java.awt.Color;
             import java.awt.Font;
             import java.awt.Frame;
             import java.awt.GridLayout;
             import java.awt.Label;
             import java.awt.Panel;
             import java.awt.event.ActionEvent;
             import java.awt.event.ActionListener;
             import java.awt.event.WindowAdapter;
             import java.awt.event.WindowEvent;
             //Programimiz için gerekli bazi paketleri ‘import’   ettik.
              
             public class HesapMakinesi extends   Frame implements ActionListener {
                 Label     display;
                 Button    onOff;
                 Button[]  tuslar;
                 Frame     parent;
                 long oncekiSayi = 0;
                 char operatie = '=';
                 boolean   yeniGirdi=true;
                 Font bigFont = new Font("Arial",Font.PLAIN,24);   //Tuslar ve ekranin görünümü için bir 'font'   tanimliyoruz
                 
                 public static **** main(String[]   arg) {
                     new HesapMakinesi().setVisible(true);
                 }
                 
                 public HesapMakinesi() {
                     super("Hesap makinesi"); //Window  (pencere)   basligi
                     olusturGUI();
                       startFlashing();
                 }
                 
                 public ****   olusturGUI() {
                     parent=this;
                     display = new Label(" ",Label.RIGHT);
                       display.setBackground(Color.yellow);
                       display.setFont(bigFont);
                     
                     onOff = new Button("On");
                       onOff.addActionListener(this);
                       onOff.setFont(bigFont);
                     
                     Panel tusPaneli = new   Panel(); //Bu   paneli tuslarimisi yerlestirmek için kullanacagiz.
                       tusPaneli.setLayout(new   GridLayout(4,4));
                     String[] isaretler = {"9","8","7",   "/",
                                          "6","5","4",   "*",
                                          "3","2","1",   "-",
                                          "0","C","=",   "+" };
                     tuslar = new Button[16];
                     //Önce 'isaretler' adinda bize lazim olan isaretleri   iceren bir String dizi olusturduk.
                    
                     for (int b=0;   b<16; b++) {
                           tuslar[b]=new Button(isaretler[b]);
                         tuslar[b].setFont(bigFont);
                           tuslar[b].addActionListener(this);
                           tusPaneli.add(tuslar[b]);
                         }
                     /*Tuslarimizi (on/of hariç) daha önce hazirladigimiz   'tusPaneli'ne for döngüsü yardimi ile tek tek          yerlestiriyor
                       ve   hepsini ActionListener'e bildiriyoruz. ActionListener arayüzü sayesinde   tuslarimizin ne  yapmasi herektigini
                         belirleyebilecegiz*/
                            
                     this.add(display,BorderLayout.NORTH);
                     this.add(tusPaneli,BorderLayout.CENTER);
                     this.add(onOff,BorderLayout.SOUTH);
                     /*Ekranimizi (display), küçük tuslarimizi yapistirdigimiz   tusPanel'imizi ve on/off tusumuzu container'e (this)
                         ekliyoruz */
                     this.setSize(250,250);
                     
                     this.addWindowListener(new   WindowAdapter() {
                         @Override
                                 public ****   windowClosing(WindowEvent we){
                                       System.exit(0);
                                       }
                                 }
                             );
                      // Bu kod parçasi ise penceremizi X butonu ile   kapatabilmemizi saglar.
                       
                 }
                 
                 public ****   actionPerformed(ActionEvent evt) {
                     /* ActionListener arayüzünden 'implemente' ettigimiz ve   tuslarimizin hareketlerini denetleyip
                      *   verdigimiz kpmotlara göre ne yapilmasi gerektiginin anlatildigi sinifimiz. */
                      
                     if ( onOff==evt.getSource() ) { //örnegin burada anlatilmak istenen onOff tusuna   basildiginda...
                           doOnOff();
                         return;
                         } 
                     if (onOff.getLabel().equals("On")) /*onOff butonunun   Label'i "On" ise..
                                                                   *Dikkat! Java'da String ifadenin   karsilastirilmasi == ile degil 
                                                                  * equals(); yordami ile yapilir. */
                         return;
                     
                     char input = evt.getActionCommand().charAt(0);  
                     System.out.println("input:"+input);
                     
                     if (input>='0'   & input<='9' ) {
                          if (display.equals("0")   || yeniGirdi) 
                             display.setText(input+"");
                          else
                               display.setText(display.getText()+input); 
                          return;
                         } 
              
                     if (input=='C')   {
                           oncekiSayi=0;
                         operatie='=';
                           yeniGirdi=true;
                           display.setText("0");
                         return;
                         }   
                     
                     String tekst="0"+display.getText().trim();
                     long sayi = Long.parseLong(tekst);
              
                       hesapla(input,sayi);
                       display.setText(oncekiSayi+"");
                     }
                   
                 public ****   hesapla(char input, long   sayi) {
                     System.out.println("hesapla:"+input+"|"+sayi);
                     switch (operatie) {
                         case '=' :   oncekiSayi= sayi; break;
                         case '+' :   oncekiSayi+=sayi; break;
                         case '-' :   oncekiSayi-=sayi; break;
                         case '*' :   oncekiSayi*=sayi; break;
                         case '/' :   oncekiSayi/=sayi; break;
                         }           
                       operatie=input;
                     yeniGirdi=true;
                     }
                 
                    
                 public ****   doOnOff() {
                     yeniGirdi=true;
                     if ( onOff.getLabel().equals("On") ) {
                           onOff.setLabel("Off");
                           display.setBackground(Color.yellow);
                           display.setText("0");
                         return;
                         }
                       onOff.setLabel("On");
                       display.setText(" ");
                       startFlashing();
                     }
              
             public **** startFlashing() {
                 Runnable flash = new Runnable() {
                     public **** run() {
                         boolean   yellow=true;
                         while(onOff.getLabel().equals("On")) {
                             if   (yellow) display.setBackground(Color.green);
                                      else   display.setBackground(Color.yellow);
                               yellow=!yellow;
                             try { Thread.sleep(600); } catch   (Exception ex) { }   
                             } // end while                   
                         } // end run
                     }; // end Runnable
                   new Thread(flash).start();
                  }
                 
                 }