import java.awt.Color;
import java.io.File;
import java.io.FileNotFoundException;
import java.util.Scanner;

import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.SwingConstants;
import javax.swing.border.TitledBorder;

public class TxtDosyasindakiNotlar {

	public static String[] data;
	
	public static String[][] dataOgrenci = new String[8][17];
	
	public TxtDosyasindakiNotlar() {
		
		// Soru:
		// hocam txt dosyasından alınan bir kac ögrencinin notlarını 
		// belirli işlemlere tabi tutarak (1.not%40 digeri %60) ekrana nasıl yadırabiliriz.
		
		File dosya = new File("src/data/ogrenci_bilgileri.txt");

		int ogrenci = 0;  // Orenci sayisi için bir index olusturuyoruz.
		
        try {
            Scanner txtOku = new Scanner(dosya);

            while (txtOku.hasNextLine()) {
            	
                String satir = txtOku.nextLine();
                data = satir.split(",");  // dizi uzunlugu 17 olur. vuirgulle ayirarak her satiri dizi yapar.
                
                for(int i=0 ; i<data.length ; i++) {
                	dataOgrenci[ogrenci][i] = data[i];
                }
                
                System.out.println("-------------->  ogrenci = " + ogrenci);
                ogrenci++;
                
                System.err.println("Ogrenci Adi : " + data[0]);
                System.err.println("Ogrenci No  : " + data[1]);
                System.err.println("data    [2] : " + data[2]);  // Matematik (Ders ismi)
                
                // Ornek olmasi icin sadece Matematik dersinin notlari islendi.
                System.err.print("data    [3] : " + data[3] + " -> %40 = ");
                int not1 = Integer.parseInt(data[3]);
                int not40 = (int) (not1 * 0.4);
                System.out.println(not40);
                
                System.err.print("data    [4] : " + data[4] + " -> %60 = ");
                int not2 = Integer.parseInt(data[4]);
                int not60 = (int) (not2 * 0.6);
                System.out.println(not60);
                
                System.err.println("data    [5] : " + data[5]);  // Fen (Ders ismi)
                System.err.println("data    [6] : " + data[6]);
                System.err.println("data    [7] : " + data[7]);
                System.err.println("data    [8] : " + data[8]);
                System.err.println("data    [9] : " + data[9]);
                System.err.println("data   [10] : " + data[10]);
                System.err.println("data   [11] : " + data[11]);
                System.err.println("data   [12] : " + data[12]);
                System.err.println("data   [13] : " + data[13]);
                System.err.println("data   [14] : " + data[14]);
                System.err.println("data   [15] : " + data[15]);
                System.err.println("data   [16] : " + data[16]);
               
            }
            
            txtOku.close();
            
        } catch (FileNotFoundException e) {
            System.out.println("Dosya bulunamadi: " + e.getMessage());
        }
		
		JFrame frame = new JFrame("TXT Dosyasindaki Notlar | Java Blackboard [103]");
		
		JPanel panel = new JPanel();  // sari renkli oanel
		panel.setLayout(null);
		panel.setBackground(new Color (233, 222, 177));  
		panel.setBounds(50, 50, 924, 648);
		
		int index=0;
		
		for(int x=0, y=-1 ; x<7 ; x++) {
			
			if (x%3 == 0) y++;
			
			panel.add(ogrenciInfo(x, y, index));
			
			index++;
		}
		
		frame.add(panel);
		
		frame.setLayout(null);
		frame.getContentPane().setBackground(new Color(124, 203, 5));  // framein rengi.
		frame.setSize(1024, 768);
		frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		frame.setLocationRelativeTo(null);
		frame.setResizable(false);
		frame.setVisible(true);

	}

	public static JPanel ogrenciInfo(int x, int y, int index) {
		
		if (x>2) x = x%3;
		
		String ogrenciAdi = dataOgrenci[index][0];
		String okulNo = dataOgrenci[index][1];
		
		JPanel panel = new JPanel();  // Her bir ogrencinin notlarinin goruntulendigi panel.
		panel.setLayout(null);
		panel.setBackground(new Color(220, 242, 230));
		panel.setBorder(new TitledBorder(okulNo + " " + ogrenciAdi));
		
		JLabel labelMatematik = new JLabel("");
	/**	labelMatematik.setOpaque(true);
		labelMatematik.setForeground(Color.WHITE);
		labelMatematik.setBackground(Color.GRAY);
	*/	
		int mat1 = Integer.parseInt(dataOgrenci[index][3]);
        int mat40 = (int) (mat1 * 0.4);
        
        int mat2 = Integer.parseInt(dataOgrenci[index][4]);
        int mat60 = (int) (mat2 * 0.6);
        
		labelMatematik.setText(dataOgrenci[index][2]+"   "+dataOgrenci[index][3]+" %40 = "+mat40+ "    "+dataOgrenci[index][4]+" %60 = "+mat60);
		labelMatematik.setHorizontalAlignment(SwingConstants.LEFT);
		labelMatematik.setBounds(10, 20, 265, 25);
		
		JLabel labelFen = new JLabel("");
		
		int fen1 = Integer.parseInt(dataOgrenci[index][6]);  // txt dosyadindaki Fen 1inci notu
        int fen40 = (int) (fen1 * 0.4);
        
        int fen2 = Integer.parseInt(dataOgrenci[index][7]);  // txt dosyadindaki Fen 2inci notu
        int fen60 = (int) (fen2 * 0.6);
        
        labelFen.setText(dataOgrenci[index][5]+"              "+dataOgrenci[index][6]+" %40 = "+fen40+ "    "+dataOgrenci[index][7]+" %60 = "+fen60);
        labelFen.setHorizontalAlignment(JLabel.LEFT);
        labelFen.setBounds(10, 50, 265, 30);
        
        JLabel labelTarih = new JLabel("");
		
		int tar1 = Integer.parseInt(dataOgrenci[index][9]);  
        int tar40 = (int) (tar1 * 0.4);
        
        int tar2 = Integer.parseInt(dataOgrenci[index][10]);
        int tar60 = (int) (tar2 * 0.6);
        
        labelTarih.setText(dataOgrenci[index][8]+"           "+dataOgrenci[index][9]+" %40 = "+tar40+ "    "+dataOgrenci[index][10]+" %60 = "+tar60);
        labelTarih.setHorizontalAlignment(JLabel.LEFT);
        labelTarih.setBounds(10, 80, 265, 30);
        
        JLabel labelIngilizce = new JLabel("");
		
		int ing1 = Integer.parseInt(dataOgrenci[index][12]);  
        int ing40 = (int) (ing1 * 0.4);
        
        int ing2 = Integer.parseInt(dataOgrenci[index][13]);
        int ing60 = (int) (ing2 * 0.6);
        
        labelIngilizce.setText(dataOgrenci[index][11]+"      "+dataOgrenci[index][12]+" %40 = "+ing40+ "    "+dataOgrenci[index][13]+" %60 = "+ing60);
        labelIngilizce.setHorizontalAlignment(JLabel.LEFT);
        labelIngilizce.setBounds(10, 110, 265, 30);
		
        JLabel labelResim = new JLabel("");
		
		int res1 = Integer.parseInt(dataOgrenci[index][15]);  
        int res40 = (int) (res1 * 0.4);
        
        int res2 = Integer.parseInt(dataOgrenci[index][16]);
        int res60 = (int) (res2 * 0.6);
        
        labelResim.setText(dataOgrenci[index][14]+"          "+dataOgrenci[index][15]+" %40 = "+res40+ "    "+dataOgrenci[index][16]+" %60 = "+res60);
        labelResim.setHorizontalAlignment(JLabel.LEFT);
        labelResim.setBounds(10, 140, 265, 30);
		
		panel.add(labelMatematik);
		panel.add(labelFen);
		panel.add(labelTarih);
		panel.add(labelIngilizce);
		panel.add(labelResim);
		
		panel.setBounds(15+(x*300), 15+(y*210), 285, 200);
		
		return panel;
	}
	
	public static void main(String[] args) {

		new TxtDosyasindakiNotlar();
		
	}

}
