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

Bilgisayarın Sağlıklı ve Doğru Kullanımı

Bilgisayar genelde oturarak kullanıldığı için uzun süreli kullanımlar vücudumuza zarar verebilmektedir.Yazı yazmak,internet erişimi ya da oyun oynamak için uzun süreli kullanım;başta bel,boyun ve omurgalarımızın sağlığını tehdit eder.Diğer yandan sürekli aynı noktaya bakmak göz sağlığımıza zarar verir.Bu nedenle bilgisayar kullanıcısının oturma pozisyonuna çok dikkat etmesi ve uzun süre çalışmaması gerekir. Bilgisayar Kullanırken Oturma Şekli Önerileri ·         Bilgisayarı,uygun yükseliğe sahip olan masa ve sandalye üzerinde dik oturma konumunda kullanmak gerekir.Klavye ve farenin çok uzakta olmaması gerekir.Oturan kişinin gözü ile bilgisayar arasında 50-60 cm uzaklık olmalıdır.Kollar yatay ve rahat konumda olmalıdır.   ·         Masa yüksekliği yaklaşık 70 cm olmalıdır.Dizüstü bilgisayarlar için yükseltici olarak bilinen altlıklar yararlı olabilir.   ·         Oturma sırasında sırt desteklemeli ve...

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

(C#) Ders 2 - Degisken Tipleri, Degisken Tanimlama ve Operatörler

C# Hakkinda Temel Bilgiler Bu dersimizde C# dili hakkinda temel bilgiler ögrenecegiz. Biraz açarsak bu dersimizde veri tipleri, degiskenler ve operatörleri nasil kullanacagimizla ilgili bilgiler verecegiz. Temel Veri Tipleri ve CTS(Common Type System) Karsiliklari C# da iki çesit veri tipi vardir: Deger Tipleri (Value type) Referans Tipleri(Reference Type) Degiskenler bellekte bulunan verilerdir. Bir degiskeni kullandigimiz zaman o degiskenin bellekte bulundu yerdeki bilgiyi kullaniriz. Deger tipleri veriyi direk olarak bellek bölgesinden alirken referans tipleri baska bir nesneye referans gösterirler. Yani referans tipleri içinde veri degil adres bilgisi tutarlar. Veri tipleri stack dedigimiz bellek bölgesinde tutulurlar, referans tipleri ise heap bellek bölgesinde saklanirlar. int, double, float gibi veri tipleri deger tiplerine örnek gösterilebilir. Herhangi bir sinif türü ise referans tipine örnek gösterilebilir. Deger tipleri birbirine esitlenirken degiskenin ba...