SlideShare une entreprise Scribd logo
1  sur  12
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
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.
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.
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.
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.
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.
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();
                                                 }
});
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;
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();

   }
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.
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.
Recep GÜLLÜ

Beni Dinlediğiniz İçin Teşekkürler…

Contenu connexe

En vedette (19)

7.hor matematicas2012 1
7.hor matematicas2012 17.hor matematicas2012 1
7.hor matematicas2012 1
 
13.aprobados6ta asignatura
13.aprobados6ta asignatura13.aprobados6ta asignatura
13.aprobados6ta asignatura
 
4.hor informatica2012 1
4.hor informatica2012 14.hor informatica2012 1
4.hor informatica2012 1
 
Evaluaciòn del libro ambar
Evaluaciòn del libro ambarEvaluaciòn del libro ambar
Evaluaciòn del libro ambar
 
5.hor analisis2012 1
5.hor analisis2012 15.hor analisis2012 1
5.hor analisis2012 1
 
Recep proje 5
Recep proje 5Recep proje 5
Recep proje 5
 
My portfolio
My portfolioMy portfolio
My portfolio
 
Investigación unidad 5
Investigación unidad 5Investigación unidad 5
Investigación unidad 5
 
Susan y ovidio
Susan y ovidioSusan y ovidio
Susan y ovidio
 
Día 1 lunes 5 agosto 2013
Día 1   lunes 5 agosto 2013Día 1   lunes 5 agosto 2013
Día 1 lunes 5 agosto 2013
 
CSC_Modelo Padrão Currículo LUIZ PINHO
CSC_Modelo Padrão Currículo LUIZ PINHOCSC_Modelo Padrão Currículo LUIZ PINHO
CSC_Modelo Padrão Currículo LUIZ PINHO
 
Soy uniatlanticese
Soy uniatlanticeseSoy uniatlanticese
Soy uniatlanticese
 
Presentación1 (4)
Presentación1 (4)Presentación1 (4)
Presentación1 (4)
 
Musica
MusicaMusica
Musica
 
Derliebe Gott2
Derliebe Gott2Derliebe Gott2
Derliebe Gott2
 
Portfolio
PortfolioPortfolio
Portfolio
 
Presentation of findings from across the REACHOUT programme
Presentation of findings from across the REACHOUT programmePresentation of findings from across the REACHOUT programme
Presentation of findings from across the REACHOUT programme
 
Día 6 – sábado 13 julio 2013
Día 6 – sábado 13 julio 2013Día 6 – sábado 13 julio 2013
Día 6 – sábado 13 julio 2013
 
Abs air tech pvt ltd
Abs air tech pvt ltdAbs air tech pvt ltd
Abs air tech pvt ltd
 

Similaire à Recep rapor 3 sunu

9.hafta cüneyt tomruk
9.hafta cüneyt tomruk9.hafta cüneyt tomruk
9.hafta cüneyt tomrukoktaygokgol
 
kullanıcı tanımlı fonksiyonlar
kullanıcı tanımlı fonksiyonlarkullanıcı tanımlı fonksiyonlar
kullanıcı tanımlı fonksiyonlaroktaygokgol
 
Ileri seviye javascript by Azer Koculu
Ileri seviye javascript by Azer KoculuIleri seviye javascript by Azer Koculu
Ileri seviye javascript by Azer Koculumustafa sarac
 
Introduction to Android Programming
Introduction to Android ProgrammingIntroduction to Android Programming
Introduction to Android ProgrammingAnıl Sözeri
 
Jest ile JavaScript Testleri
Jest ile JavaScript TestleriJest ile JavaScript Testleri
Jest ile JavaScript TestleriAli GOREN
 
Silk Test Framework Kurulumu ve Yazılım Test Otomasyon Mimarisine Giriş
Silk Test Framework Kurulumu ve Yazılım Test Otomasyon Mimarisine GirişSilk Test Framework Kurulumu ve Yazılım Test Otomasyon Mimarisine Giriş
Silk Test Framework Kurulumu ve Yazılım Test Otomasyon Mimarisine GirişBurak AVCI, MEM, PSM I®
 
Introduction to Java programming
Introduction to Java programmingIntroduction to Java programming
Introduction to Java programmingAnıl Sözeri
 
Stored procedure
Stored procedureStored procedure
Stored procedureoktaygokgol
 
Web Programlama II sunum 9.pdf
Web Programlama II sunum 9.pdfWeb Programlama II sunum 9.pdf
Web Programlama II sunum 9.pdfssuser19601c
 
progressokulu.com Advanced Business Language Slide 10
progressokulu.com Advanced Business Language Slide 10progressokulu.com Advanced Business Language Slide 10
progressokulu.com Advanced Business Language Slide 10kaan verdioglu
 
Django Introduction
Django IntroductionDjango Introduction
Django IntroductionFatih Erikli
 

Similaire à Recep rapor 3 sunu (15)

Flashlightoverlay
FlashlightoverlayFlashlightoverlay
Flashlightoverlay
 
9.hafta cüneyt tomruk
9.hafta cüneyt tomruk9.hafta cüneyt tomruk
9.hafta cüneyt tomruk
 
kullanıcı tanımlı fonksiyonlar
kullanıcı tanımlı fonksiyonlarkullanıcı tanımlı fonksiyonlar
kullanıcı tanımlı fonksiyonlar
 
Ileri seviye javascript by Azer Koculu
Ileri seviye javascript by Azer KoculuIleri seviye javascript by Azer Koculu
Ileri seviye javascript by Azer Koculu
 
Introduction to Android Programming
Introduction to Android ProgrammingIntroduction to Android Programming
Introduction to Android Programming
 
Jest ile JavaScript Testleri
Jest ile JavaScript TestleriJest ile JavaScript Testleri
Jest ile JavaScript Testleri
 
Extjs 4 education
Extjs 4 educationExtjs 4 education
Extjs 4 education
 
Silk Test Framework Kurulumu ve Yazılım Test Otomasyon Mimarisine Giriş
Silk Test Framework Kurulumu ve Yazılım Test Otomasyon Mimarisine GirişSilk Test Framework Kurulumu ve Yazılım Test Otomasyon Mimarisine Giriş
Silk Test Framework Kurulumu ve Yazılım Test Otomasyon Mimarisine Giriş
 
Introduction to Java programming
Introduction to Java programmingIntroduction to Java programming
Introduction to Java programming
 
Stored procedure
Stored procedureStored procedure
Stored procedure
 
Web Programlama II sunum 9.pdf
Web Programlama II sunum 9.pdfWeb Programlama II sunum 9.pdf
Web Programlama II sunum 9.pdf
 
Ittodev
IttodevIttodev
Ittodev
 
progressokulu.com Advanced Business Language Slide 10
progressokulu.com Advanced Business Language Slide 10progressokulu.com Advanced Business Language Slide 10
progressokulu.com Advanced Business Language Slide 10
 
Visual Studio Developer Tools
Visual Studio Developer ToolsVisual Studio Developer Tools
Visual Studio Developer Tools
 
Django Introduction
Django IntroductionDjango Introduction
Django Introduction
 

Recep rapor 3 sunu

  • 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.
  • 12. Recep GÜLLÜ Beni Dinlediğiniz İçin Teşekkürler…