Java Veritabanı Uygulaması Bölüm 2: Teknik Servis Müşteri Sayfası

Teknik servis programının ikinci bölümünde müşterilerin ürün bilgilerini kontrol edebileceği pencereyi oluşturacağız. Genel yapısıyla bu aşamada yapılacak işlemleri kısaca açıklamakta fayda var. Müşteriler bildiğiniz gibi programda sınırlı yetkiye sahip olacaklar. Bu yüzden ürün bilgilerinde herhangi bir değişiklik yapamayacaklar. Bunu da düşünerek veritabanından bilgilerin çekildiği nesneler pasif olmalı ki müşteri değişiklik yapamasın.

Müşteri sayfası için yol haritasını da çizdikten sonra kodlama kısmına girebiliriz. İlk yapılacak iş tabi ki resimde görülen nesnelerin yerleştirilmesi olacak. Bir panel üzerine bu nesnelerin eklenmesinden sonra arka planda çalışacak kodlamaları yapmaya geçebiliriz. Bilgileri getir butonunun actionlistener’ ında, girilen kullanıcı adı ve şifre kontrol edilip doğruluğu onaylandığında, veritabanından bu kullanıcı adı ve şifreye ait bilgiler paneldeki textbox ve comboboxlara çekilecek. Çık butonu ile de kullanıcı, Müşteri Sayfasından Giriş Sayfasına yönlendirilecek.

Kodlama kısmında daha önce hiç değinmediğim combobox nesnesinin çalışma mantığına değinmek istiyorum. Combobox değerlerini veritabanında int değişkeni ile tutmamız gerekiyor. Aslında bir dizi olarak düşünülebilir. Programdaki Combobox‘ ta iki değer olduğu için bu iki değer 0 ve 1 ile kontrol ediliyor. Veritabanındaki değerin Combobox’ a atılması aşamasında seçili indeks, veritabanındaki int değere göre kurulmalı. Bu işlem de cb_mGarantiKapsami.setSelectedIndex(0); ifadesindeki setSelectedIndex() fonksiyonu ile yapılır.

Gayet açık bir şekilde isimlendirilen nesnelerle kodda anlamakta zorlanılacak bir ifadenin oldğunu düşünmüyorum. Buyrun, artık kodu inceleyebilirsiniz. (Birinci bölüm için tıklayınız.)

 
[cc lang = ‘java’]
package teknikservis;

import javax.swing.*;
import java.awt.event.*;
import java.awt.*;
import java.sql.*;

public class  musteriSayfasi extends JFrame
{
    static String kullaniciEslestir;
    JFrame frame;
    JPanel pnl_musteri;
    JButton btn_musteriCikis, btn_mBilgileriGetir;
    JComboBox  cb_mGarantiKapsami, cb_mDurumu;
    JTextField txt_mKullaniciAdi, txt_mCihazModeli, txt_mCihazArizasi, txt_mVerilisTarihi, txt_mAdres;
                
    JPasswordField txt_sifre;
    JLabel lbl_mKullaniciAdi, lbl_mSifre, lbl_mCihazModeli, lbl_mCihazArizasi, lbl_mVerilisTarihi, lbl_mGarantiKapsami, lbl_mDurumu, lbl_mAdres;
    
    //Consructor
    public musteriSayfasi()
    {
        frame=new JFrame(“musteri”);
        frame.setBounds(100, 100, 500, 500);
        frame.setVisible(true);
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        musteriPaneliOlustur();
        frame.add(pnl_musteri);
    }
    public void kullanici(String s)
    {
        kullaniciEslestir=s;
    }

    public void musteriPaneliOlustur()
    {
        //Panel oluşturuluyor
        pnl_musteri=new JPanel();
        pnl_musteri.setBackground(Color.lightGray);
        pnl_musteri.setBounds(100, 100, 500, 500);
        pnl_musteri.setLayout(null);

        //Nesneler oluşturuluyor
        lbl_mKullaniciAdi   = new JLabel(“Kullanıcı Adınız”);
        lbl_mKullaniciAdi.  setBounds(10, 10, 200, 20);
        txt_mKullaniciAdi   = new JTextField();
        txt_mKullaniciAdi.  setBounds(170, 10, 200, 20);
        lbl_mSifre          =new JLabel(“Şifreniz”);
        lbl_mSifre.         setBounds(10, 35, 200, 20);
        txt_sifre           =new JPasswordField();
        txt_sifre.          setBounds(170, 35, 200, 20);
        btn_mBilgileriGetir =new JButton(“Bilgileri Getir”);
        btn_mBilgileriGetir.setBounds(170, 60, 120, 30);
        lbl_mCihazModeli    = new JLabel(“Cihazın Modeli”);
        lbl_mCihazModeli.   setBounds(10, 95, 200, 20);
        txt_mCihazModeli    = new JTextField();
        txt_mCihazModeli.   setBounds(170, 95, 200, 20);
        txt_mCihazModeli.   enable(false);
        lbl_mCihazArizasi   = new JLabel(“Cihazın Arızasi”);
        lbl_mCihazArizasi.  setBounds(10, 120, 200, 20);
        txt_mCihazArizasi   = new JTextField();
        txt_mCihazArizasi.  setBounds(170, 120, 200, 20);
        txt_mCihazArizasi.  enable(false);
        lbl_mVerilisTarihi  = new JLabel(“Alım Tarihi”);
        lbl_mVerilisTarihi. setBounds(10, 145, 200, 20);
        txt_mVerilisTarihi  = new JTextField();
        txt_mVerilisTarihi. setBounds(170, 145, 200, 20);
        txt_mVerilisTarihi. enable(false);
        lbl_mGarantiKapsami = new JLabel(“Garanti Durumu”);
        lbl_mGarantiKapsami.setBounds(10, 170, 200, 20);
        cb_mGarantiKapsami  = new JComboBox();
        cb_mGarantiKapsami. setModel(new DefaultComboBoxModel(new String[]{“Garanti Kapsamında”, “Garanti Kapsamında Değil”}));
        cb_mGarantiKapsami. setBounds(170, 170, 200, 20);
        cb_mGarantiKapsami. enable(false);
        lbl_mDurumu         = new JLabel(“Arıza Durumu”);
        lbl_mDurumu.        setBounds(10, 195, 200, 20);
        cb_mDurumu          = new JComboBox();
        cb_mDurumu.         setModel(new DefaultComboBoxModel(new String[]{“Arıza Giderildi”, “Arıza Giderilmedi”}));
        cb_mDurumu.         setBounds(170, 195, 200, 20);
        cb_mDurumu.         enable(false);
        lbl_mAdres          = new JLabel(“Adres”);
        lbl_mAdres.         setBounds(10, 220, 200, 20);
        txt_mAdres          = new JTextField();
        txt_mAdres.         setBounds(170, 220, 200, 20);
        txt_mAdres.         enable(false);
        btn_musteriCikis    = new JButton(“Çıkış”);
        btn_musteriCikis.   setBounds(290, 245, 75, 30);

        // Oluşturulan nesneler panel’ e ekleniyor
        pnl_musteri.add(lbl_mKullaniciAdi);
        pnl_musteri.add(txt_mKullaniciAdi);
        pnl_musteri.add(lbl_mSifre);
        pnl_musteri.add(txt_sifre);
        pnl_musteri.add(btn_mBilgileriGetir);
        pnl_musteri.add(lbl_mCihazModeli);
        pnl_musteri.add(txt_mCihazModeli);
        pnl_musteri.add(lbl_mCihazArizasi);
        pnl_musteri.add(txt_mCihazArizasi);
        pnl_musteri.add(lbl_mVerilisTarihi);
        pnl_musteri.add(txt_mVerilisTarihi);
        pnl_musteri.add(lbl_mGarantiKapsami);
        pnl_musteri.add(cb_mGarantiKapsami);
        pnl_musteri.add(lbl_mDurumu);
        pnl_musteri.add(cb_mDurumu);
        pnl_musteri.add(lbl_mAdres);
        pnl_musteri.add(txt_mAdres);
        pnl_musteri.add(btn_musteriCikis);

        // Bilgileri getir butonunun actionListener’ı Veritabanından veri çekme işleminin yapıldığı kısım.
        btn_mBilgileriGetir.addActionListener(
                new ActionListener() {
                    public void actionPerformed(ActionEvent event)
                    {
                        try
                        {
                            Class.forName(“com.mysql.jdbc.Driver”).newInstance();
                            System.out.print(“sürücü yüklendi”);
                            Connection conn = DriverManager.getConnection(“jdbc:mysql://localhost:3306/teknikServis”, “root”, “”);
                            Statement komut = conn.createStatement();
                            ResultSet rs = komut.executeQuery(“select * from tb_bilgiler order by kullaniciAdi”);    //bilgileri çek
                            while (rs.next()) {
                                if(txt_mKullaniciAdi.getText().equals(rs.getString(“kullaniciAdi”)) && txt_sifre.getText().equals(rs.getString(“sifre”)))
                                {
                                    if(true)
                                    {
                                        txt_mCihazModeli.setText(rs.getString(“cihazModeli”)) ;
                                        txt_mCihazArizasi.setText(rs.getString(“cihazArizasi”));
                                        txt_mVerilisTarihi.setText(rs.getString(“verilisTarihi”));
                                        if(rs.getInt(“garantiKapsami”)==1)
                                        {
                                            cb_mGarantiKapsami.setSelectedIndex(0); //Garanti Kapsamında
                                        }
                                        else
                                        {
                                            cb_mGarantiKapsami.setSelectedIndex(1); // Garanti Kapsamında Değil
                                        }
                                        if(rs.getInt(“Durumu”)==1)
                                        {
                                            cb_mDurumu.setSelectedIndex(0); // Arıza Giderildi
                                        }
                                        else
                                        {
                                            cb_mDurumu.setSelectedIndex(1); // Arıza Giderilmedi
                                        }
                                        txt_mAdres.setText(rs.getString(“adres”));
                                    }
                                    else
                                    {
                                        JOptionPane.showMessageDialog(null, “Yanlıs kullanıcı adı veya şifre, Bilgilerinizi kontrol ederek tekrar deneyiniz”);
                                    }

                                }
                            }
                            conn.close();
                        }
                        catch (Exception s)
                        {
                            System.out.print(s.getMessage());
                        }
                    }
                });
                btn_musteriCikis.addActionListener(new ActionListener() {

            public void actionPerformed(ActionEvent e) {
                girisEkrani ge=new girisEkrani();
                frame.setVisible(false);
            }
        });
    }
}
[/cc]

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir