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

JavaScript ile Ziyaretçi Bilgileri Nasil Alinir

Bu makalemizde javascript ile web sayfamizi ziyaret eden kullanicilarin hangi site üzerinden geldigi, kullandigi tarayici bilgisi, ekran çözünürlügü ve Ip adresi gibi bilgileri nasil alacagimizi anlatacagiz. Tarayici Tipini Almak Ziyaretçinin kullandigi tarayici tipini asagidaki javascript kodu ile alabiliriz. function Tarayicitipi() {   alert(navigator.appName); } Tarayici Versiyonunu Almak function Tarayiciversiyon() {   alert(navigator.appVersion); } Ziyaretçinin Hangi Baglantiyi Kullanarak Geldigi Bilgisi (referral bilgisi) Eger ziyaretçi sayfamiza direk olarak degilde bir linki takip ederek geldi ise, geldigi adresi almak için asagidaki kodu kullaniyoruz. Bu sayede arama motorlarin gelen ziyaretçileride bulabilir ve farkli analizler için kullanabiliriz. function ReferrelBilgisi() {    alert(document.referrer); } Ekran Çözünürlügünü Almak function Cozunurluk() {    var w = screen...

GPS'li şapkayla yolunuzu bulmak çok kolay!

Bu ilginç görünümlü şapkayı giydiğinizde, yolunuzu hiç kaybetmeyeceksiniz! Gitmek istediğiniz mekanı bulmak için telefonunuzu cebinizden çıkarmanıza artık gerek yok. Çünkü bu şapka, size yolu tarif edebiliyor, üstelik yalnızca sesle. GPS destekli silindir şapka,  Cornell Üniversitesi  araştırmacıları tarafından geliştirilmiş. Prototip şu an korkunç görünüyor olabilir, ancak onu kullanmak için dil bilmenize bile gerek yok. Şapka, ses tonlarıyla yolunuzu bulmanızı sağladığından elinizi kullanmanıza da gerek kalmıyor. Bu şapkayı yakın bir zamanda satın almanız mümkün olmayacak, ancak teknolojinin navigasyon uygulamalarına uyarlanması faydalı olabilir. Teknoloji görsel ipuçlarıyla çalışmadığından, özellikle görme sorunu yaşayan kullanıcıların işine yarayabilir.

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