İlginizi Çekebilir
featured
  1. Ana Sayfa
  2. Java
  3. Java’da Klavyeden Veri Alma

Java’da Klavyeden Veri Alma

Java’da klavyeden veri alma yapacağımız programları daha değerli hale getiriyor. Java’da veri almak için kullanacağımız Scanner sınıfı gibi JOptionPane sınıfımız da mevcut. Scanner sınıfı kullanarak konsol ekranından veri alıyorken, nesneye yönelik programlama konularına geçeceğimiz zaman daha detaylı göreceğimiz JOptionPane sınıfı ile görsel bir pencere ile veri alabiliyoruz.

Scanner Sınıfı ile Java’da Klavyeden Veri Alma

Yapacağımız programlar için kullanıcıdan veri talebinde bulunarak o veriyi işleyebiliyorsak o programların her zaman olumlu yönde artıları oluşmuştur gözümde. Bu işlemleri Java’da Scanner sınıfı kullanarak gerçekleştirebiliriz. Bu sınıfı kullanabilmek için java.util paketinden scanner sınıfını programımıza import etmemiz gerekmektedir.

Programımıza scanner sınıfının tanıtımını gerçekleştirdikten sonra klavyeden girilen veriyi okuyabilmemiz için bir nesne oluşturmamız gerekiyor.
Scanner konsolVeri = new Scanner(System.in); // konsolVeri nesnesini oluşturmuş olduk.

Tanımlama yaptığımız sınıfın yapıcısı olarak System.in InputStream kaynağı verilir.

Scanner Sınıf Fonksiyonları

Kullanıcıdan istediğimiz veri tiplerine göre bir fonksiyon belirleyerek tanımlama işlemi gerçekleştirmemiz gerekiyor. Eğer int türde bir veri talep edersek string (metin) fonksiyonunu kullanırsak diğer adımlar sonucunda hata ile karşılaşabiliriz.

  • nextByte(); fonksiyonunu kullandığımız zaman kullanıcıdan byte türüne ait bir veri talebinde bulunuruz.
  • nextShort(); fonksiyonu ile -32768 ile 32767 arasında kullanıcıdan veri alabiliriz.
  • nextInt(); kullanıcıdan tam sayı değerinde veri talebinde bulunuruz.
  • nextLong(); fonksiyonu kullanıcıdan, uzunluğu daha fazla olan tam sayı talebinde bulunmak için kullanırız.
  • nextFloat(); & nextDouble(); ondalıklı sayılar için kullanılır.
  • nextBoolean(); kullanıcıdan mantıksal türde bir değer talebinde bulunacaksak kullanırız.
  • next(); kullanıcıdan metin(String) türünde veri talebinde bulunacağımız zaman kullanırız. Eğer bu string değer içerisinde boşluk bulunuyorsa boşluğa kadar olan kısmı okur.
  • nextLine(); fonksiyonu next(); fonksiyonuna benzerlik gösterir. String türde verileri okur fakat next(); fonksiyonunda olduğu gibi boşluğa kadar olan kısmı değil boşluktan sonraki kısımları da okur.

Java’da Veri tipleri konusunda eksiğiniz olduğunu düşünüyorsanız ilgili yazıma göz atabilirsiniz.

Scanner ile alakalı vereceğim örnekte geçmiş konuları tekrar etmek adına iç içe for döngüsü ile bir örnek oluşturmak istiyorum. Bu örnek içerisinde kullanıcıdan alacağımız veri satırında bir üçgen çizimi oluşturalım.

Bu örneği oluşturmak için yapacağımız işlem:
#1Klavyeden girilen veriye uygun satırda üçgen oluşturmak için ilk for döngümüzü oluşturacağım.
#2 İlk oluşturduğum for döngüsünden sonra yine klavyeden aldığım veriyi işleyerek ekrana uygun sayıda boşluk bastırmayı istediğimden klavyeden aldığım veri ile ilk for döngüm içerisinde bulunan ideğişkeninden çıkartma işlemini gerçekleştiriyorum. Bu yaptığım İşlem Sonucunda aşağıdaki görseldeki gibi bir çıktıya ulaşmanın temelini atmış olduk.

Java'da kullanıcıdan veri alarak üçgen oluşturma
Java’da Yıldızlarla Üçgen

#3 Son for döngümüz içerisinde boşlukları attırdıktan sonra ekrana “*” bastırmamız gerektiği için basit bir formül ile ilk döngümüz içerisindeki for döngüsünün değerinin her zaman 2 katını alacak şekilde ekrana yıldız bastırma işlemini gerçekleştirdim. Bu işlemler bittikten sonra aşağı satıra geçmesi için bir adet System.out.println(” “); komut satırı ekleyerek aşağı satıra geçerek tekrar döngüyü devam ettirdim.

import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        // Scanner Sınıfını Tanımlama:
        Scanner konsolVeri = new Scanner(System.in);
        // Değişken Tanımalaması:
        int üçgen;
        System.out.println("------------\nKlavyeden Veri Alarak Yıldızlarla Üçgen Oluşturma\n------------");
        System.out.print("-> Üçgen İçin Veri Girişi Sağlayın: ");
        üçgen = konsolVeri.nextInt();
        System.out.print("------------\n");
        for(int i=0;i<üçgen;i++){
            for(int k=1;k<üçgen-i;k++){
                System.out.print(" ");
            }
            for(int x=0;x<=i*2;x++){
                System.out.print("*");
            }
            System.out.println(" ");
        }
    }
}

Kod Çıktısı:

Java'da scanner kullanarak yıldızlarla üçgen yapma
Java’da klavyeden veri alarak üçgen oluşturma

JOptionPane Kullanımı

Java’da Klavyeden veri alma kavramına nesnellik katmayı düşündüğümüz zaman kullanacağımız kavram JOptionPane‘dir. Java’da JOptionPane, kullanıcılar ile etkileşim halinde olur. Yani kullanıcılara bir mesaj gösterir veya kullanıcıdan veri alır.

Bunu kullanabilmemiz için ilk olarak programımıza javax.swing.JOptionPanesınıfını import etmemiz gerekmektedir.

Kullanıcıdan Veri Alma

Java’da klavyeden veri alma işlemini nesnelleştiren JOptionPane kavramı ile kullanıcıdan veri almamız için yazacağım kod dizisi şu şekildedir:

import javax.swing.JOptionPane;

public class Main {
    public static void main(String[] args) {
        String kullaniciAdi= JOptionPane.showInputDialog("Kullanıcı Adını Girin:");
        JOptionPane.showMessageDialog(null,kullaniciAdi+" Hoşgeldin!");
    }
}

Kod Çıktısı:

Java'da JOptionPane Sınıfını İmport Etme
Java’da JOptionPane Kullanımı

Bilgi Mesajı Gösterme

Java’da klavyeden veri alma işlemini daha estetik hale getiren JOptionPane sınıfında kullanıcıya bir bilgi penceresi çıktısı vermemiz mümkündür. Bu işlemi şu şekilde gerçekleştirebiliriz:

JOptionPane.showMessageDialog(null,"Mesajınız");

Yukarıda vermiş olduğum kod içerisinde 2 parametre bulunmaktadır. Bu parametrenin ilk parametresi null‘dur. Diğer parametremiz ise, kullanıcıya iletmek istediğiniz mesajdır.

Eğer bilgi penceresine 2 yerine 4 parametre verirsek, bilgi penceresinin başlık ismini ve bilgilendirme resmini değiştirebiliriz. Bu kod için ekrana site adresimiz yazan bir bilgi penceresi oluşturarak gösterelim.

Java'da JOptionPane Bilgi Mesajı nasıl oluşturulur?
Java’da JOptionPane Bilgi Mesajı

2 Parametreli kullanımdaki gibi ilk verimiz yine null olacak, ikinci kısmımızda göstermek istediğimiz bilgi mesajı yer alacak, üçüncü kısım ise bilgi penceremizin başlığı ve son olarak penceremizde çıkan görseli değiştirmek istersek değiştirmek istediğimiz parametreyi yazıyoruz.

Java’da Klavyeden veri alma konusunda JOptionPane kullanarak bir vize, final not hesaplama sistemi oluşturalım.

import javax.swing.JOptionPane;

public class Main {
    public static void main(String[] args) {
        // Vize Notunu Kullanıcdan İstemek İçin:
        String vizeSinavi = JOptionPane.showInputDialog("Vize Notunu Girin:");
        double vizeNotu = Double.parseDouble(vizeSinavi); // String Olarak Aldığımız Değişkeni double değere çeviriyoruz.
        String finalSinavi = JOptionPane.showInputDialog("Final Notunu Girin:");
        double finalNotu = Double.parseDouble(finalSinavi); // String Olarak Aldığımız Değişkeni double değere çeviriyoruz.
        double ortalama = (vizeNotu*0.4)+(finalNotu*0.6);
        if(ortalama<=0){
            JOptionPane.showMessageDialog(null,"Negatif veya Sıfır Tanımlı Bir Ortalama Değerine Sahip Olamazsınız.","Hata",JOptionPane.ERROR_MESSAGE);
        }
        else if(ortalama>100){
            JOptionPane.showMessageDialog(null,"100 Değerinden Büyük Bir Ortalama Değerine Sahip Olamazsınız.","Hata",JOptionPane.ERROR_MESSAGE);
        }
        else{
            String notGoster = "Not Ortalamanız: "+ ortalama;
            JOptionPane.showMessageDialog(null,notGoster,"Not Ortalaması",JOptionPane.INFORMATION_MESSAGE);
        }
    }
}

Kod Çıktısı:

Java JOptionPane kullanarak not ortalaması hesaplama
Java’da JOptionPane Not Ortalaması

Yaptığım bu örnek üzerinde klavyeden aldığımız veriler String (metin) türünde olduğu için öncelikle verileri Double tipine dönüştürüyoruz. Vize ve Final notlarını aldıktan sonra kontrol yapısına sokarak önce not ortalamasının 0’dan küçük veya 0’a eşit olup olmadığını kontrol ettikten sonra aynı işlemi 100 değerinden büyük mü diye tekrar gerçekleştiriyor. Herhangi bir sıkıntı yoksa ekranımıza not ortalamasını yazdırarak bilgi penceresi sonlanıyor.

Java’da Klavyeden veri alma konusu JOptionPane kullanarak daha işlevsel ve göze hoş gelen bir etki oluşturduğunu anlattığım bu yazımın sonuna geldim. Her zaman olduğu gibi aklınıza takılan bir soru veya bu konu üzerinde bir öneriniz bulunursa aşağıda “yorum yap” kısmından benimle iletişime geçebilirsiniz.

Yorum Yap

Yazar Hakkında

Yazmayı, öğrenmeyi, öğrendiklerini paylaşmayı , kodlamayı ve günün birinde Yönetim Bilişim Sistemleri Uzmanı olmanın hayalini kuran birisiyim.

Yorum Yap

Yorumlar (2)

  1. 3 yıl önce

    JpointPone sınıfı ile ilgili aklımda soru işaretleri vardı, bu yazınız sayesinde soru işaretlerini gidermiş oldum.

  2. 3 yıl önce

    Mükemmel bir içerik olmuş. Klavyeden veri alırken görsellik olsa hoş olur diye düşünüyordum JOptionPane bu konuda gerçekten güzel bir anlatım konusu olmuş.

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir