IRCForumları - IRC ve mIRC Kullanıcılarının Buluşma Noktası

IRCForumları - IRC ve mIRC Kullanıcılarının Buluşma Noktası (https://www.ircforumlari.net/)
-   Java (https://www.ircforumlari.net/java/)
-   -   Java ile Yazılmış Bir Hesap Makinesi Örneği (https://www.ircforumlari.net/java/689584-java-ile-yazilmis-bir-hesap-makinesi-ornegi.html)

Kaf_Dağı 18 Mart 2015 14:51

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

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



Tüm Zamanlar GMT +3 Olarak Ayarlanmış. Şuanki Zaman: 01:14.

Powered by vBulletin® Version 3.8.8 Beta 3
Copyright ©2000 - 2024, vBulletin Solutions, Inc.
Search Engine Friendly URLs by vBSEO
Copyright ©2004 - 2024 IRCForumlari.Net