26 Mayıs 2016 Perşembe

Java ile Verileri Tabloda (jTable) Gösterme

Evet bundan önceki yazımızda java ile veritabanı işlemlerini gerçekleştiren sınıflarımızı oluşturmuştuk. Bu yazımda ise, gelen sorular üzerine veritabanından çekilen verileri jTable içerisinde görüntülemeyi anlatacağım. Öncelikle şunu belirteyim daha önce c#, vb.net gibi dillerde programlama yaptıysanız datatable, dataset gibi kontrolleri arıyor olabilirsiniz. Fakat java içerisinde bu kavramlar yer almıyor. O zaman nasıl verilerimizi tabloda göstereceğiz, adım adım anlatalım.
Öncelikle formumuzu tasarlıyoruz. Tasarım yaparken bir GUI kullanmakta fayda. Öncelikle jScrollpane’i jFrame’in içine yerleştirelim. jScrollpane tablonun kaydırma işlemleri için gerekli olacak. Daha sonra  jTable’ı jScrollpane’in içerisine koyarak uygun şekilde boyutlandırıyoruz. jTable’ın ismini(variable) “table” olarak değiştirelim. Son olarak tablomuzu doldurmak için bir adet jButton’a ihtiyacımız olacak. İşlemleri sırayla yaptığınızda aşağıdaki gibi bir ekran görüntüsü elde edeceksiniz. Tabi tablo içerisinde ki verileri saymazsak.





package com.anaokulotomasyonu.sultan.ui; import java.awt.BorderLayout; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.util.List; import javax.swing.BorderFactory; import javax.swing.ImageIcon; import javax.swing.JButton; import javax.swing.JDialog; import javax.swing.JLabel; import javax.swing.JOptionPane; import javax.swing.JPanel; import javax.swing.JScrollPane; import javax.swing.JTable; import javax.swing.JTextField; import javax.swing.table.DefaultTableModel; import com.anaokulotomasyonu.sultan.db.OgrenciKayitDao; import com.anaokulotomasyonu.sultan.domain.OgrenciKayitDomain; public class OgrenciListesiGui extends JDialog { public OgrenciListesiGui() { initPencere(); } private void initPencere() { JPanel panel = initPanel(); getContentPane().add(panel); setTitle("Öğrenci Listesi"); setSize(950, 400); setDefaultCloseOperation(JDialog.DISPOSE_ON_CLOSE); setModalityType(DEFAULT_MODALITY_TYPE); setLocationRelativeTo(null); setResizable(false); setVisible(true); } private JPanel initPanel() { JPanel anaJPanel = new JPanel(new BorderLayout()); JPanel panel_1 = new JPanel(); anaJPanel.add(panel_1, BorderLayout.SOUTH); ImageIcon silIcon = new ImageIcon("images/çöp.png"); JButton btnNewButton_1 = new JButton(" SİL ", silIcon); panel_1.add(btnNewButton_1); ImageIcon iptalIcon = new ImageIcon("images/iptal.png"); JButton btnNewButton_2 = new JButton(" İPTAL ", iptalIcon); panel_1.add(btnNewButton_2); btnNewButton_2.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { dispose(); } }); JPanel panel_2 = new JPanel(); anaJPanel.add(panel_2, BorderLayout.CENTER); panel_2.setLayout(null); String dizi[] = { "ID", "TC NO", "ADI", "SOYADI", "DOĞUM TARİHİ", "VELİ ADI", "TELEFON", "ADRES" }; DefaultTableModel model = new DefaultTableModel(dizi, 0); JTable table = new JTable(model); JScrollPane listePane = new JScrollPane(table); listePane.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_ALWAYS); listePane.setBounds(10, 55, 924, 272); panel_2.add(listePane); for (OgrenciKayitDomain list : OgrenciKayitDao.listele()) { model.addRow(list.getObjects()); } JLabel lblAra = new JLabel("TC No :"); lblAra.setBounds(677, 20, 46, 14); panel_2.add(lblAra); JTextField textField = new JTextField(); textField.setBounds(718, 17, 148, 20); panel_2.add(textField); textField.setColumns(10); ImageIcon araIcon = new ImageIcon("images/ara.png"); JButton btnNewButton_3 = new JButton("", araIcon); btnNewButton_3.setBounds(876, 11, 46, 34); panel_2.add(btnNewButton_3); JButton btnListele = new JButton("listele"); btnListele.setBounds(44, 16, 89, 23); panel_2.add(btnListele); btnNewButton_1.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { OgrenciKayitDomain silinecekDomain = new OgrenciKayitDomain(); int secilenSatir = table.getSelectedRow(); int id = (Integer) model.getValueAt(secilenSatir, 0); silinecekDomain.setId(id); OgrenciKayitDao.sil(silinecekDomain); int satirSayisi = model.getRowCount(); for (int i = 0; i < satirSayisi; i++) { model.removeRow(0); } List<OgrenciKayitDomain> listele2 = OgrenciKayitDao.listele(); for (OgrenciKayitDomain yenilistDomain : listele2) { model.addRow(yenilistDomain.getObjects()); } JOptionPane.showMessageDialog(null, "silme işlemi başarılı"); } }); return anaJPanel; } }






OgrenciListeleDao.java




package com.anaokulotomasyonu.sultan.db; import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; import java.util.ArrayList; import java.util.List; import com.anaokulotomasyonu.sultan.domain.OgrenciKayitDomain; public class OgrenciKayitDao { public static void tabloyuOlustur() { Connection con = ConnectionToDb.getConnection(); try { Statement stmt = con.createStatement(); stmt.executeUpdate( "CREATE TABLE ogrenci(id INTEGER NOT NULL GENERATED ALWAYS AS IDENTITY(START WITH 1, INCREMENT BY 1) ,tcNo VARCHAR(50),adi VARCHAR(50),soyadi VARCHAR(50),tarih VARCHAR(50),veliAdi VARCHAR(50),telefon VARCHAR(50),adres VARCHAR(100),onKayit VARCHAR(50),taksit VARCHAR(50))"); stmt.close(); con.close(); } catch (SQLException e) { // TODO Auto-generated catch block // e.printStackTrace(); System.out.println("öğrenci tablosu Zaten var"); } } public static void ekle(OgrenciKayitDomain eklenecekOgrenciDomain) { Connection con = ConnectionToDb.getConnection(); try { PreparedStatement sorgu = con.prepareStatement( "INSERT INTO ogrenci(tcNo,adi,soyadi,tarih,veliAdi,telefon,adres,onKayit,taksit) VALUES(?,?,?,?,?,?,?,?,?)"); sorgu.setString(1, eklenecekOgrenciDomain.getTcNo()); sorgu.setString(2, eklenecekOgrenciDomain.getAdi()); sorgu.setString(3, eklenecekOgrenciDomain.getSoyadi()); sorgu.setString(4, eklenecekOgrenciDomain.getTarih()); sorgu.setString(5, eklenecekOgrenciDomain.getVeliAdi()); sorgu.setString(6, eklenecekOgrenciDomain.getTelefon()); sorgu.setString(7, eklenecekOgrenciDomain.getAdres()); sorgu.setString(8, eklenecekOgrenciDomain.getOnKayit()); sorgu.setString(9, eklenecekOgrenciDomain.getTaksit()); sorgu.executeUpdate(); sorgu.close(); con.close(); } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } } public static void sil(OgrenciKayitDomain silinecekOgrenciDomain) { Connection con = ConnectionToDb.getConnection(); try { PreparedStatement sorgu = con.prepareStatement("DELETE FROM ogrenci WHERE id = ?"); sorgu.setInt(1, silinecekOgrenciDomain.getId()); sorgu.executeUpdate(); sorgu.close(); con.close(); } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } } public static List<OgrenciKayitDomain> listele() { List<OgrenciKayitDomain> liste = new ArrayList<OgrenciKayitDomain>(); Connection con = ConnectionToDb.getConnection(); try { Statement sorgu = con.createStatement(); ResultSet veriler = sorgu.executeQuery("SELECT * FROM ogrenci"); while (veriler.next()) { OgrenciKayitDomain siradakiOgrenciDomain = new OgrenciKayitDomain(); siradakiOgrenciDomain.setId(veriler.getInt("id")); siradakiOgrenciDomain.setTcNo(veriler.getString("tcNo")); siradakiOgrenciDomain.setAdi(veriler.getString("adi")); siradakiOgrenciDomain.setSoyadi(veriler.getString("soyadi")); siradakiOgrenciDomain.setTarih(veriler.getString("tarih")); siradakiOgrenciDomain.setVeliAdi(veriler.getString("veliAdi")); siradakiOgrenciDomain.setTelefon(veriler.getString("telefon")); siradakiOgrenciDomain.setAdres(veriler.getString("adres")); siradakiOgrenciDomain.setOnKayit(veriler.getString("onKayit")); siradakiOgrenciDomain.setTaksit(veriler.getString("taksit")); liste.add(siradakiOgrenciDomain); } } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } return liste; } }




Son olarak tabloyuDoldur metodumuzu buttonun “actionPerformed” eventi içerisinden çağırıyoruz. Verilerimiz tablonun içerisinde yukarda gördüğünüz şekilde doldurulacak. 

Hiç yorum yok:

Yorum Gönder