Ana içeriğe atla

Java ile Yazilmis Bir Hesap Makinesi Örnegi

Java ile basit bir hesap makinesi programini sizlerle paylasmak istiyorum:

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 void main(String[] arg) {
        new HesapMakinesi().setVisible(true);
    }
   
    public HesapMakinesi() {
        super("Hesap makinesi"); //Window  (pencere) basligi
        olusturGUI();
        startFlashing();
    }
   
    public void 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 void windowClosing(WindowEvent we){
                        System.exit(0);
                        }
                    }
                );
         // Bu kod parçasi ise penceremizi X butonu ile kapatabilmemizi saglar.
         
    }
   
    public void 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 void 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 void 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 void startFlashing() {
    Runnable flash = new Runnable() {
        public void 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();
     }
   
    }

Yorumlar

  1. How to Make Money From BetMGM? | Work-to-Earn Money
    The main reason I do so 바카라 양방 사이트 is to make money luckyclub.live on the NFL with betting sites. หาเงินออนไลน์ BetMGM 바카라사이트 has already started offering online sports betting 강원 랜드 바카라 to its loyal

    YanıtlaSil

Yorum Gönder

Bu blogdaki popüler yayınlar

Linux En Az Sistem Gereksinimi İsteyen Dağıtımları Değerlendirilmesi

Linux İşletim Sisteminin Dağıtımlarının En az sistem gereksinimi isteyen sürümleri, değerlendirilmesi aşağıdadır, Değerlendirilen dağıtımlar şunlardır: Ubuntu Xubuntu Lubuntu Damn Small Linux Linux Mint Fedora Opensuse Debian Rat Hat Suse Linux Suse Linux Sistem Gereksinimleri: Pentium 1-4 ya da Xeon; AMD Duron, Athlon (XP, MP ya da 64), Sempron ya da Opteron 256MB RAM 500MB boş disk alanı 800x600 yada üstü resolution Rat Hat Memory Gerekli: 4 GB of memory Önerilen: 8 GB of memory CPU Gerekli: Intel Core processor, 2.4GHz, 512K cache or equivalent Önerilen: Intel multi-core processor, 2.4GHz dual processor, 512K cache or equivalent Storage 5 GB alan temel kurulum için. 40 GB alan Channel başına. 10 GB alan Cache dizini için(/var/cache/rhn) Disk yapılandırması olarak Raid 5 tavsiye edilir. Database İlk kurulum için 12 GB alan önerilir. Client ve channel hesaplamaları ise, 250 KB alan client system başına, 500 KB alan çhannel başına, ayrıca 230 KB channel da...

JAVA'da if - else kosul yapisi

Programlama deyince degiskenlerden sonra akla ilk gelen  if-else  bloklaridir. Programimizi  if-else  kosul yapisi ile yönlendiririz. Velhasil bu yapiyi iyi bilmeden olmaz. Bütün programlama dillerinde mantik aynidir; fakat sözdiziminde ( syntax ) ufak farklar mevcuttur. Java'da  if-else  kosul yapisi genel olarak su sekildedir:   if  ( boolean ) true  ise else false  ise   Görüldügü üzere denetim  boolean  ifade üzerine kurulu.  Boolean  bir ifade iki degerden birini alir:  true  ya da false.  Deger  true  ise sunu yap, degilse bunu yap. Burada dikkat edilmesi gereken en önemli sey  boolean  bir ifade kullanmak. Örneklere geçmeden önce, hayati önem tasiyan karsilastirma ifadelerine kisaca deginmek istiyorum. <, <=, >, >=, == (esitse), =! (esit degilse)   Örnek: int sayi=5; if (sayi==5) System.out.println("sayi=5");   Simd...

MPLS Temel Konfigürasyonu

Bu yazı içerisinde sizlerle temel “MPLS” protokolü konfigürasyonunu adım adım uygulayarak paylaşacağım. Bu adımların tamamını Huawei marka AR 2200 Serisi Router ürün ailesi üzerinde konfigüre edeceğiz. Bu konfigürasyonların kullanıldığı ve çalıştırıldığı işletim sistemi versiyonu “ V200R003C00 ” dur. Konfigürasyon adımlarının tamamı bi çok üretici ürününde de aynı şekilde ve aynı ön gereksinim ve alt yapı hazır olduğu sürece uygulanabilir ve müşteri ve/veya Servis sağlayıcıda devreye alınabilir. İşlem adımlarının uygulanırken temiz bir şekilde anlaşılması çok önemlidir. MPLS Protokolü temel konfigürasyonunu aşağıdaki topoloji üzerinden uygulayarak sizlere sunuyor olacağım. MPLS Referans Topolojimiz Öncelikli olarak tüm Router cihazlarımızda, fiziksel interface’ler ve Loopback interfac IP adres tanımlamalarını topolojimize uygun ayarlıyoruz. RouterB IP İnterface konfigürasyonu; “Router B IP Konfigürasyonu çıktısı” “Router B Üzerinde Yer Alan İnterface’lerin IP...