Tarih: Cmt Eyl 22, 2007 8:22 pm Mesaj konusu: JAVA | Kayıt Listesi Uygulaması ve Anlatımı
Site Admin
Kayıt: 04 Nis 2007 Mesajlar: 167
KayitListesi.java programında kullanıcı bir menü ekranıyla karşılaşıyor.
Bu menü ekranında karşımıza şu yazı çıkıyor ;
Lütfen seçiminizi yapınız :
**************************
[1] Listeye yeni isim ekle
[2] Listeden isim sil
[3] Listeyi göster
[0 yada CANCEL] Programı sonlandır
Gireceğimiz rakama göre işlem yapılıyor.
Programın kodlarını incelersek KayitListes Class'ımızın altında "menuEkrani", "kayitEkle", "kayitSil", "listeyiGoster", "cikis", "uygulamaBaslat", "mesaj", "girisAl" ve "main" olmak üzere 9 metodumuz bulunmaktadır.
"menuEkrani" metodumuzda karşımıza ilk çıkan seçim ekranı ile ilgili içerik ve özellikler bulunmaktadır.
"kayitEkle" metodumuzda listeye yeni isim eklenmekte.
"kayitSil" metodumuz listeden isim silmekte.
"listeyiGoster" metodumuz listeyi göstermekte.
"cikis" metodumuz programdan çıkış yapmakta.
"uygulamaBaslat" metodumuz private olan menuEkrani'ni public değerli bu metoda atayarak "main"den çağrılmasını sağlamakta.
"mesaj" metodumuz içerisine aldığı "str" değişkenini ekrana showMessageDialog penceresinde yazdırmakta.
"girisAl" metodumuz input dialog penceresi çağırıyor.
"main" metodumuz işlemleri yapmaktadır.
Metodlarımızın birçoğu private olarak ayarlanmıştır. Böylelikle kullanıcılar örneğin "uygulamaBaslat" metodunu çağırdığında diğer metodları çağıramamaktadır. Ve private olan "menuEkrani" altında işlemler çaktırmadan yapılıp "uygulamaBaslat" metodu üzerinden "main"e aktarılır. Bilirsiniz ki main'den direk olarak "menuEkrani" private olarak çağırılamaz.
Programın kodlarını daha ayrıntılı bir şekilde inceleyelim.
ilk önce javax altında ki swing ve java altındaki util kütüphanelerimiz import edilmiş.
import javax.swing.*;
import java.util.*;
public class KayitListesi {
/*KayitListesi sınıfımız başladı..*/
ArrayList liste = new ArrayList();
/*liste adında bir dizi yapılmış.*/
private void menuEkrani(){
/*menuEkrani metodu başladı.*/
String str = "Lütfen seçiminizi yapınız :\n**************************\n";
str += "\n[1] Listeye yeni isim ekle";
str += "\n[2] Listeden isim sil";
str += "\n[3] Listeyi göster";
str += "\n[0 yada CANCEL] Programı sonlandır";
/*seçim ekranında yazacak yazılar str adlı değişkene aktarılmış.*/
String secimStr = this.girisAl(str);
/*str değişkeni girisAl metoduna gönderilmiş. girisAl metodumuzda input dialog kutusu karşımıza str değeri içinde yazılı halde karşımıza çıkmaktadır. Metoddan geri dönen yani input dialog kutusuna kullnıcının girdiği değer secimStr adlı yeni bir değişkene atanmış.*/
/*eğer secimStr değişkenimizden null dönerse yani Cancel'a tıklanmışsa secimStr'nin içine "0" değeri atanıyor. Eğer seçimStr içine herhangi bir değer girilmeden ok tuşuna basıldıysa veya 0 ile 9 arasındaki rakamlar dışında bir şey girildiyse karşımıza yeniden menuEkrani geliyor.*/
int secim = Integer.parseInt(secimStr);
/*secimStr değişkenindeki değer integer türüne yani rakamsal türe çevrilip secim değişkeni içerisine atanıyor.*/
switch(secim){
case 0: this.cikis(); break;
case 1: this.kayitEkle(); break;
case 2: this.kayitSil(); break;
case 3: this.listeyiGoster(); break;
default:JOptionPane.showMessageDialog(null, "Yamuk yapma !");
this.menuEkrani(); break;
}
}
/*bir switch bloğu yazılmış ve "secim" değişkeni bunun içerisine gönderilmiş. eğer "secim" değişkenindeki değer "0" ise "case 0" karşısındaki işlemde "cikis()" metodu çağırılmış. Yani kullanıcının girdiği değer "0" ise "cikis()" metodu sayesinde program kapanmaktadır. this anahtar sözcüğü kayitLİstesi class'ının içindeki metodları çağırdığımız anlamına gelir. "case 1" olunca yani "secim" değişkeninden 1 değeri geldiğinde "kayitEkle()" metodu çağırılmaktadır. "case 2" olduğunda "kayitSil()" metodu çağırılmaktadır. "case 3" olduğunda "listeyiGoster()" metodu çağırılmaktadır. Eğer kullanıcı tarafından bunların dışında bir rakam girilirse showMessageDialog kutusunda "Adam gibi rakam gir !" mesajı karşımızda çıkmakta ve ardından "menuEkrani()" tekrar çağırılmaktadır. Ve en son olarak "menuEkrani()" metodundan çıkılmaktadır.*/
private void kayitEkle(){
/*kayitEkle() metoduna girdik*/
String eklenecek = this.girisAl("Lütfen eklenecek bir isim giriniz");
/*"girisAl()" metodu içerisine "Lütfen eklenecek bir isim giriniz" yazısını gönderdiğimizda bu yazının bulunduğu bir input dialog kutusu karşımıza çıkıyor. input dialog kutusundan girilen değerde "eklenecek" adlı değişkene atanıyor.*/
if(eklenecek != null && !eklenecek.equals("")){
/*eğer input dialog kutusu Cancel ile kapatılmamışsa ve içerisinde değer varsa bu bloğun altındaki işlemler yapılacak*/
if(liste.indexOf(eklenecek.toUpperCase()) != -1)
JOptionPane.showMessageDialog(null, "Bu kayıt zaten listeye eklenmiş");
else {
liste.add(eklenecek.toUpperCase());
JOptionPane.showMessageDialog(null, "Kayıt listeye eklendi");
}
/*"eklenecek" değişkeni listede "liste.indexof" ile aranıyor. Eğer arama sonucunda gelen değer "-1" değilse "Bu kayıt zaten listeye eklenmiş" mesajı ile karşılaşıyoruz. Yani "-1" değerinin dönmesi kaydın var olduğu anlamına gelir. Eğer kayıt yoksa "liste.add" ile kayıt listeye eklenmekte ve ardından "Kayıt listeye eklendi" mesajı verilmektedir.*/
}
this.menuEkrani();
}
/*üstteki if kontrol yapısı kapatılıp "menuEkrani()" metodu çalıştırılıyor ve "kayitEkle()" metodundan çıkılıyor*/
private void kayitSil(){
/*kayitSil() metoduna girdik*/
String silinecek = this.girisAl("Lütfen silinecek ismi giriniz");
/*"girisAl()" metodu içerisine "Lütfen silinecek bir isim giriniz" yazısını gönderdiğimizde bu yazının bulunduğu bir input dialog kutusu karşımıza çıkıyor. input dialog kutusundan girilen değerde "silinecek" adlı değişkene atanıyor.*/
if(silinecek != null && !silinecek.equals("")){
/*eğer input dialog kutusu Cancel ile kapatılmamışsa ve içerisinde değer varsa bu bloğun altındaki işlemler yapılacak*/
/*silinecek kayıt listede aranıyor ve eğer listede varsa (-1 dönüyorsa) "liste.remove" ile değer listeden siliniyor. Ardından ekrana "Kayıt listeden itinayla silindi" yazısı çıkıyor. silinmesi istenen kayıt listede yoksa "Listede böyle birşey yok" yazısı çıkıyor.*/
}
this.menuEkrani();
}
/*üstteki if kontrol yapısı kapatılıp "menuEkrani()" metodu çalıştırılıyor ve "kayitSil()" metodundan çıkılıyor*/
/*str adlı bir değişken yazılıp içerisine bir sıra * koyuldu.*/
for(int i=0; i < liste.size(); i++){
/*"liste.size" ile liste içerisinde kaç tane değer olduğuna bakıldı ve for ile 0'dan "liste.size" değerine kadar döngü yapıldı.*/
str += "["+i+"]"+liste.get(i)+"\n"; }
/*bir sıra * koyduğumuz "str" değişkenine "[" ardından döngüdeki "i" değişkeni sonrasında "]" konulmuş. Ardından liste içerisinden o anki "i" değişkenine denk gelecek sıradaki isim "liste.get(i)" ile çağırılır. ve en son bir satır atlamak için "\n" yazılır. Döngü her döndüğünde "i" bir arttığı için o sıradaki liste içeriğini getirir.*/
str += "\n**************************\n";
/*str değişkenine yeniden bir sıra * koyuldu. ve bir satır atlatıldı*/
int secim = JOptionPane.showConfirmDialog(null, "Çıkmak istediğinize eminsiniz misiniz ?");
/*Confirm Dialog penceresi içerisinde "Çıkmak istediğinize eminsiniz misiniz ?" sorusu ekrana yazdırılıyor ve gelen değer "secim" değişkenine atanıyor*/
Bu forumda yeni başlıklar açamazsınız Bu forumdaki başlıklara cevap veremezsiniz Bu forumdaki mesajlarınızı değiştiremezsiniz Bu forumdaki mesajlarınızı silemezsiniz Bu forumdaki anketlerde oy kullanamazsınız