• 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.

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();
                  }
                 
                 }
 
Üst