import java.awt.*;
import java.awt.event.*;

import javax.swing.*;

public class BarliPanel {

	BarliPanel() {
		
		JFrame frame = new JFrame("071 JScrollPnae örnek");
		frame.setLayout(null);
		
		JPanel panel = new JPanel();
		panel.setLayout(null);
	//	panel.setPreferredSize(new Dimension(100, 100));	// Göstermelik bi ölçü veriyoruz...
	//	panel.setBounds(15,100,470,250);	// setBounds ile ölçü veriyoruz... Tercih sizin.. Vermeseniz de olur...
		panel.setBackground(new Color(101, 140, 122));
		
		JScrollPane levha = new JScrollPane(panel, JScrollPane.VERTICAL_SCROLLBAR_ALWAYS,JScrollPane.HORIZONTAL_SCROLLBAR_NEVER);
		levha.setBounds(30,100,440,370);	// frame içindeki ölçüyü belirliyoruz.
				
		int x = 55;
		int y = 50;
		int xf = 125;
		int yf = 50;
		int w = 100;
		int h = 30;
		
		JLabel labelTekrar = new JLabel("?");
		JTextField textTekrar = new JTextField("15");
		
		JLabel labelBaslangic = new JLabel("Başlangıç");
		JTextField textBaslangic = new JTextField("100");
		
		JLabel labelArtis = new JLabel("%'lik Artış");
		JTextField textArtis = new JTextField("7");
		
		JLabel labelToplam = new JLabel("Toplam");
		JLabel textToplam = new JLabel();
		
		JButton buton = new JButton("Hesapla");
		
		labelTekrar.setBounds(x,10,25,h);
		textTekrar.setBounds(x,y,25,h); 
		
		x = x + 50;
		
		labelBaslangic.setBounds(x,10,w,h);
		textBaslangic.setBounds(x,y,w,h);
		
		x = x + xf;
		
		labelArtis.setBounds(x,10,w,h);
		textArtis.setBounds(x,y,w,h); 
		
		x = x + xf; 
		
		labelToplam.setBounds(x,10,w,h);
		textToplam.setBounds(x,y,w,h);  
		
		buton.setBounds(x,55,75,20);
		
		frame.add(labelTekrar);
		frame.add(labelBaslangic);
		frame.add(labelArtis);
		frame.add(labelToplam);
		
		frame.add(textTekrar);
		frame.add(textBaslangic);
		frame.add(textArtis);
		frame.add(textToplam);
		frame.add(buton);
		
		buton.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {

				double karToplam = 0;
				
				String txtT = textTekrar.getText();
				String txtB = textBaslangic.getText();
				String txtA = textArtis.getText();
				
				int tekrar = Integer.valueOf(txtT);
				double baslangic = Double.valueOf(txtB);
				double artis = Double.valueOf(txtA);
			
				// NullPointerException hatasi almamak için tekrar adetli dizi elemani tanimlamasi yapiyoruz
				JPanel[] pastel0 = new JPanel[tekrar];
				for(int i = 0; i<tekrar;i++) pastel0[i] = new JPanel();

				JLabel[] tekrarLabel = new JLabel[tekrar];
				for(int i = 0; i<tekrar;i++) tekrarLabel[i] = new JLabel();
				
				JLabel[] sayilar = new JLabel[tekrar];
				for(int i = 0; i<tekrar;i++) sayilar[i] = new JLabel();
				
				JLabel[] sonucLabel = new JLabel[tekrar];
				for(int i = 0; i<tekrar;i++) sonucLabel[i] = new JLabel();
				
				JLabel[] islemLabel = new JLabel[tekrar];
				for(int i = 0; i<tekrar;i++) islemLabel[i] = new JLabel();
								
				for(int i=0; i<tekrar; i++) {

					double sonuc = (baslangic/100)*artis;
					double sonuc2 = Math.round(sonuc * 100.0) / 100.0;
					
					double islem = sonuc2+baslangic;
					double islem2 = Math.round(islem * 100.0) / 100.0;
					
					tekrarLabel[i].setText("  "+(i+1));
					tekrarLabel[i].setBounds(25,10+(i*25),375,h);
					
					sayilar[i].setText(""+baslangic);
					sayilar[i].setBounds(75,10+(i*25),w,h);
					
					sonucLabel[i].setText(""+sonuc2);
					sonucLabel[i].setBounds(200,10+(i*25),w,h);
					
					islemLabel[i].setText(""+islem2);
					islemLabel[i].setBounds(325,10+(i*25),w,h);
					
					karToplam=karToplam+sonuc2;
					
				//	System.out.println("Kar toplam = " + karToplam);  // Console kontrolü için! :)
					
					baslangic = islem2;			

				}
								
				panel.removeAll();
			
				panel.setPreferredSize(new Dimension(10,(tekrar*25)+10));
				

				for(int i = 0; i<tekrar; i++) {

					panel.add(sayilar[i]);
					panel.add(sonucLabel[i]);
					panel.add(islemLabel[i]);
					panel.add(tekrarLabel[i]);
					
					if(i%2 == 1) {

						pastel0[i].setBackground(new Color(153, 191, 173));
						pastel0[i].setBounds(15,(i*25)+10,390,25);
						panel.add(pastel0[i]);
						
					}else{
						
						pastel0[i].setBackground(new Color(186, 217, 200));
						pastel0[i].setBounds(15,(i*25)+10,390,25);
						panel.add(pastel0[i]);						
					}

				}

				frame.repaint();

			}
		});
			
		frame.add(levha);
		
		frame.setSize(500,550);
		frame.getContentPane().setBackground(new Color(217, 153, 139));
		frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		frame.setLocationRelativeTo(null);
		frame.setResizable(false);
		frame.setVisible(true);
		
	}

}
