1. MUSTAFA KEMAL ÜNİVERSİTESİ
HASSA MESLEK YÜKSEKOKULU
Halı Yıkama Takip Otomasyonu R-3
Sistem Analizi ve Tasarım Dersi Bitirme
Projesi
RECEP GÜLLÜ
108104020
2. Proje Tasarımı ve Sonradan Eklenen Kodlar
Ana pencere tasarlanırken şu adımlar izlendi:
1. Ana pencerenin oluşturulması ve çalıştırılması.
2. Metotlara bölme ve constructerdan çağırılması.
3. Pencere içerisinde ögelerin oluşturulması ve yerleştirilmesi.
4. Action özelliği verme.
3. Ana Pencerenin Oluşturulması ve Çalıştırılması
Ana pencere Java programlama dilinin swing kütüphanesinden
JFrame sınıfı miras (extends) alınarak oluşturuldu. Miras alma işlemi
sayesinde program yazılırken kodlar uzun bir şekilde sıralanmadı ve yazım
kolaylığı sağlanmış oldu.
4. Yan tarafta JFramenin nasıl oluşturulacağı gösterilmekte- dir.
setTitle ile penceremize bir başlık eklenebilir, setSize ile boyutu,
setLocationRelativeTo ile penceremizin ekranın hangi konumunda
açılacağını ayarlayabiliriz. setResizable ile yeniden boyutlandırma özelliği
değiştirilebilir, setVisible ile pencerenin görünürlüğü sağlanır ancak; bu kod
yazılmaz veya false yazılırsa pencere çalışır fakat görünmez.
setDefaultCloseOperation pencerenin kapatıldığı zaman gerçekleşeceği
işlemi belirleriz.
5. Metotlara Bölme ve Constructer’ dan Çağırma
Constructer: Program çalıştırıldığında
derleyicinin ilk çalıştıracağı metottur. Bu
yüzden bu metot ne kadar kısa olursa o kadar
elverişli olur.
Yan tarafta gösterildiği gibi kodlar
farklı kod bloklarına bölünebilir. Bu saye- de
kodlar uzamaz ve değişiklik yapılmak
istendiğinde aradığımızı bulmakta zorlanmayız.
Sınıfımız JFrame sınıfından miras
alınmıştır. Penceremiz initJFrame metodunda
oluşturuldu ve constructer dan initJframe();
şeklinde çağırıldı. Bu sayede Java programlama
dilinin kod yazımı sırasında bize sağlamış
olduğu kolaylığıda görmüş olduk.
6. Pencere İçerisindeki Ögelerin Oluşturulması ve Yerleştirilmesi
Yukarıda bir tablonun nasıl oluşturulduğu anlatılmaktadır. Ben
tablomu oluştururken sütun isimlerini String olarak haliListesi dizisine
atadım. Daha sonra tableModelOne adında bir tablo modeli oluşturdum ve
string dizisini bu modele ekledim. Ardından tableJTable adında tablo
oluşturup modeli bu tabloya ekledim. paneJScrollPane adında bir scroll
oluşturup tablomu scrolla ekledim. 20 satırlık bir tablo oluşturulmuş ve panele
eklenmeye hazır vaziyettedir.
7. Buton Ekleme ve Action Oluşturma
Bu butonu oluşturmak için;
JButton addCustemerJButton = new JButton(“Müşteri Ekle”); kodlarını
yazmak gerekir. Ardından
addCustemerJButton.addActionListener(new ActionListener)
{
public void actionPerformed(ActionEvent arg0) {
new AddCustemerGui();
}
});
8. Soru Penceresi Oluşturma
Tamam butonuna tıklandığında “Bu Müşteri İçin Halı Kaydı Yapmak
İstiyor musunuz?” şeklinde bir soru penceresi açılmaktadır. Bu soru
penceresini oluşturan kodlar şunlardır;
9. Object[] options = { "Evet", "Hayır!" };
int n = JOptionPane.showOptionDialog(null,"Bu Müşteri İçin Halı Kayıdı Yapmak İstiyor
musunuz?", "Kayıt Yapılsın mı?",
JOptionPane.YES_NO_OPTION,
JOptionPane.QUESTION_MESSAGE, null, options,
options[0]);
Yukarıda ki kodlar sayesinde bir YES_NO_OPTION soru penceresi yapılır.
Ayrıca pencerede istediğimiz her şeyi değiştirebiliriz. Evete basıldığında müşteri
adına bir sipariş penceresi açılır. İptal ise kayıt işlemi yapılmadan çıkış yapar. Bunun
için bir if karar yapısı yapılmalıdır bu da şu şekilde olur;
if (n == 0) {
EnterCarpetGui enterCarpet = new EnterCarpetGui();
}
else if (n == 1)
{
dispose();
}
10. Yapılan Hatalar ve Düzeltme Yolları
import java.awt.BorderLayout; Yan tarafta javanın diğer sınıflardan
import java.awt.Color; veri almasını sağlayan import kodlarından
import java.awt.event.ActionEvent; bazıları vardır. Bazıları dedim çünkü
import java.awt.event.ActionListener; ezberlenmesi kolay olmayacak kadar fazladır.
import javax.swing.BorderFactory; Bu yüzden ctrl+shift+O kullanılarak gerekli
import javax.swing.ImageIcon; olan importları çağırabilir kullanılmayan
import javax.swing.JButton; importları silebiliriz. Örneğin;
import javax.swing.JFrame;
import javax.swing.JMenu; JPanel panel = new JPanel(); kodalarını
import javax.swing.JMenuBar; yazdığımız zaman import
import javax.swing.JMenuItem; jawax.swing.JPanel; importu gelir. Bu kod
import javax.swing.JOptionPane; yazılmadığı zaman veya kısa yolla
import javax.swing.JPanel; çağırılmadığı zaman kod bloğumuzda
şeklinde hata oluşur.
11. Metot Hataları
Aynı sınıf içerisinde farklı metotlar kullanırken, metodumuzun bir şey
döndürmesini isteyebiliriz. Fakat bunu sonradan yani tüm metodu yazdıktan sonra
yapmayı düşünüp metodumuzun sonuna return null; yazabiliriz. Fakat daha
sonradan unutulmamalıdır ki yazılan null yani boş değer yerine döndürülmesi
gereken seçenek yazılmalıdır. Aksi takdirde yazılan metot sadece kodlar arasında
sadece kalabalık yapar, bir işe yaramaz.
Bir diğer yaptığım metot hatası ise yazdığım metodu farklı bir sınıftan veya
diğer bir metottan çağırmayı unutmaktır. Yazılan metot değer döndürmekte fakat
diğer metot veya sınıflardan çağırılmadığı için algılanmamaktadır.