import java.awt.Color;
import java.awt.Dimension;
import java.awt.Font;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.BorderFactory;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.JTextField;
import javax.swing.border.Border;
import javax.swing.border.EtchedBorder;
import javax.swing.border.LineBorder;
import javax.swing.table.DefaultTableModel;
import javax.swing.table.TableColumn;

public class JTableaSatirEkle {
	
	public static String stringIDNumarasi;
	public static String stringIsim;
	public static String stringSoyad;
	public static String stringDogumYili;
	public static String stringDogumYeri;
	
	public static DefaultTableModel model;
	
	public static Color frameBG;
	public static Color anaPanelBG;
	public static Color bilgiFormuPanelBG;
	public static Color bilgiFormuBorderRenk;

	public JTableaSatirEkle() {
		
		frameBG = new Color(88, 100, 115);
		anaPanelBG = new Color(93, 201, 217);
		bilgiFormuPanelBG = new Color(173, 197, 217);
		bilgiFormuBorderRenk = new Color( 76, 97, 115);
		
		JFrame frame = new JFrame("JTable'a Satır Ekle | Java Blackboard [136]");
		frame.setLayout(null);
		
		JPanel anaPanel = new JPanel();
		anaPanel.setLayout(null);
		anaPanel.setBackground(anaPanelBG);
		anaPanel.setBounds(25, 25, 950, 550);
		
		anaPanel.add(bilgiFormuPaneli());
		anaPanel.add(scrollPaneTablo());
		
		frame.add(anaPanel);
		
		frame.setSize(1000, 622);
		frame.getContentPane().setBackground(frameBG);
		frame.setLocationRelativeTo(null);
		frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		frame.setResizable(false);
		frame.setVisible(true);
		
	}

	public static JPanel bilgiFormuPaneli() {
	
		JPanel panel = new JPanel();
		panel.setBackground(bilgiFormuPanelBG);
		
		// Panel'in kenar çizgisi
		int borderGenislik = 2; // Çizgi kalınlığı (piksel cinsinden)
        panel.setBorder(new LineBorder(bilgiFormuBorderRenk, borderGenislik)); // Çizgi kenarı ekleniyor

		// Diger Kenarlik türleri
	//	panel.setBorder(BorderFactory.createEtchedBorder(EtchedBorder.LOWERED));
	//	panel.setBorder(BorderFactory.createEtchedBorder(EtchedBorder.RAISED)); 


        Font fontLabel = new Font("Ubuntu", Font.PLAIN, 15);
        
        int startX = 10;
        int startY = 10;
        int x = startX;
        int y = startY;
        int genislik = 155;
        int yukseklik = 30;
        int farkX = 5;
        int farkY = 30;
        
        JLabel labelIDNumarasi = new JLabel("Kayıt ID No:");
        labelIDNumarasi.setFont(fontLabel);
        labelIDNumarasi.setBounds(x, y, genislik, yukseklik);
        y = y + farkY;
        
        JTextField fieldIDNumarasi = new JTextField();
        fieldIDNumarasi.setBounds(x, y, genislik, yukseklik);
        x = x + genislik + farkX;
        y = startY;
        
        JLabel labelIsim = new JLabel("Personel İsmi:");
        labelIsim.setFont(fontLabel);
        labelIsim.setBounds(x, y, genislik, yukseklik);
        y = y + farkY;
        
        JTextField fieldIsim = new JTextField();
        fieldIsim.setBounds(x, y, genislik, yukseklik);
        x = x + genislik + farkX;
        y = startY;
        
        JLabel labelSoyad = new JLabel("Personel Soyadı:");
        labelSoyad.setFont(fontLabel);
        labelSoyad.setBounds(x, y, genislik, yukseklik);
        y = y + farkY;
        
        JTextField fieldSoyad = new JTextField();
        fieldSoyad.setBounds(x, y, genislik, yukseklik);
        x = x + genislik + farkX;
        y = startY;
        
        JLabel labelDogumYili = new JLabel("Doğum Yılı:");
        labelDogumYili.setFont(fontLabel);
        labelDogumYili.setBounds(x, y, genislik, yukseklik);
        y = y + farkY;
        
        JTextField fieldDogumYili = new JTextField();
        fieldDogumYili.setBounds(x, y, genislik, yukseklik);
        x = x + genislik + farkX;
        y = startY;
        
        JLabel labelDogumYeri = new JLabel("Dogum Yeri:");
        labelDogumYeri.setFont(fontLabel);
        labelDogumYeri.setBounds(x, y, genislik, yukseklik);
        y = y + farkY;
        
        JTextField fieldDogumYeri = new JTextField();
        fieldDogumYeri.setBounds(x, y, genislik, yukseklik);
        x = x + genislik + farkX;
   //   y = startY;
        
        JButton butonEkle = new JButton("Ekle");
        butonEkle.setFont(fontLabel);
        butonEkle.setBounds(x, y, genislik/2, yukseklik);
        
        
        butonEkle.addActionListener(new ActionListener() {
        	public void actionPerformed(ActionEvent e) {
        		
        		stringIDNumarasi = fieldIDNumarasi.getText();
        		stringIsim = fieldIsim.getText();
        		stringSoyad = fieldSoyad.getText();
        		stringDogumYili = fieldDogumYili.getText();
        		stringDogumYeri = fieldDogumYeri.getText();
        		
        		System.out.println(stringIDNumarasi + ", " + 
        					stringIsim + ", " +	stringSoyad + ", " + 
        					stringDogumYili + ", " + stringDogumYeri);
        		
        		// Formdan alınan verileri String dizi yapiyoruz.
                String[] yeniSatir = {
                    stringIDNumarasi,
                    stringIsim,
                    stringSoyad,
                    stringDogumYili,
                    stringDogumYeri
                };

                // Yeni satırı modele ekliyoruz.
                model.addRow(yeniSatir);

                // Formu temizliyoruz.
                fieldIDNumarasi.setText("");
                fieldIsim.setText("");
                fieldSoyad.setText("");
                fieldDogumYili.setText("");
                fieldDogumYeri.setText("");
        		
        	}
        });
        
        
        panel.add(labelIDNumarasi);
        panel.add(fieldIDNumarasi);
        
        panel.add(labelIsim);
        panel.add(fieldIsim);
        
        panel.add(labelSoyad);
        panel.add(fieldSoyad);
        
        panel.add(labelDogumYili);
        panel.add(fieldDogumYili);
        
        panel.add(labelDogumYeri);
        panel.add(fieldDogumYeri);
        
        panel.add(butonEkle);
        
        panel.setBounds(25, 25, 900, 80);
        
		panel.setLayout(null);
		
		
		return panel;
	}
	
	public static JScrollPane scrollPaneTablo() {
		
		String[] sutunIsimleri = {"ID", "Isim", "Soyad", "Dogum Yili", "Sehir" };
		
        model = new DefaultTableModel(null, sutunIsimleri); // Boş bir model oluşturuluyor
		
        JTable table = new JTable(model);
	//	table.setBounds(25, 130, 900, 400);
        
        JScrollPane scrollPane = new JScrollPane(table);
		
		scrollPane.setBounds(25, 130, 900, 400);
		
		return scrollPane;
	}
	
	public static void main(String[] args) {
		
		new JTableaSatirEkle();

	}

}
