📄 JavaSinifAsistani.java .java dosyası
⬇️ İndir
/*
* Java Sınıf Takip Asistanı v2.0
*
* Java Blackboard YouTube kanali üzerinden yayinlandi : Ekim / 2023
*
* Bu kodlar GPL altında yayınlanan bir Java yazılımıdır.
* GPL-3.0-or-later olarak lisanslanmistir.
*
* CC BY-NC-SA Atıf-GayriTicari-AynıLisanslaPaylaş (Attribution-NonCommercial-ShareAlike)
*
*/
import java.awt.Color;
import java.awt.Dimension;
import java.awt.Font;
import java.awt.Image;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.net.URL;
import javax.imageio.ImageIO;
import javax.swing.Icon;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JComboBox;
import javax.swing.JFileChooser;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTextField;
public class JavaSinifAsistani {
public static JPanel anaPanel;
public static String okulIlIlce = "KADIKÖY";
public static String okulAdiBirinciSatir = "JAVA BLACKBOARD";
public static String okulAdiIkinciSatir = "ORTA OKULU";
public static String[] sinif = { "5/A", "5/B", "6/A" };
public static String[][] tamListe;
public static String[][] listeSube5A;
public static String[][] listeSube5B;
public static String[][] listeSube6A;
public static JLabel labelOgrenciResmi;
public static int subeMevcudu5A;
public static int subeMevcudu5B;
public static int subeMevcudu6A;
public static int anaPanelYukseklik = 2500;
public JavaSinifAsistani() {
JFrame frame = new JFrame("Java Sınıf Takip Asistanı v2.0 | Java Blackboard [140]");
frame.setLayout(null);
anaPanel = new JPanel();
anaPanel.setLayout(null);
anaPanel.setBackground(background("anaPanel"));
anaPanel.setPreferredSize(new Dimension(900, anaPanelYukseklik));
anaPanel.add(menuPaneli());
anaPanel.add(okulTabelaPaneli());
anaPanel.add(icerikPaneli());
JScrollPane anaPanelScroll = new JScrollPane(anaPanel);
anaPanelScroll.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_ALWAYS);
anaPanelScroll.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_NEVER);
anaPanelScroll.setBounds(50, 50, 900, 600);
frame.add(anaPanelScroll);
frame.setSize(1000, 722);
frame.setLocationRelativeTo(null);
frame.getContentPane().setBackground(background("frame"));
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setResizable(false);
frame.setVisible(true);
}
public static JPanel okulTabelaPaneli() {
JPanel panel = new JPanel();
panel.setLayout(null);
panel.setBackground(background("logoPaneli"));
panel.setBounds(190, 20, 670, 150);
// Bos okul tabelasini ImageIcon'a ekliyoruz.
ImageIcon okulTabelaIcon = new ImageIcon("src/images/KadikoyJavaBlackboardOrtaOkulu.jpg");
// JLabel'a bos tabelanin ImageIcon'unu ekleyelim
JLabel labelOkulAdiTabela = new JLabel(okulTabelaIcon);
labelOkulAdiTabela.setBounds(0, 0, 670, 150);
JLabel labelOkulIlIlce = new JLabel(okulIlIlce);
labelOkulIlIlce.setFont(font("labelOkulIlIlce"));
labelOkulIlIlce.setBounds(160, 20, 510, 35);
JLabel labelOkulAdi = new JLabel(okulAdiBirinciSatir);
labelOkulAdi.setFont(font("labelOkulAdi"));
labelOkulAdi.setBounds(160, 65, 510, 35);
JLabel labelOkulAdi2 = new JLabel(okulAdiIkinciSatir);
labelOkulAdi2.setFont(font("labelOkulAdi"));
labelOkulAdi2.setBounds(160, 95, 510, 35);
panel.add(labelOkulIlIlce);
panel.add(labelOkulAdi);
panel.add(labelOkulAdi2);
panel.add(labelOkulAdiTabela);
return panel;
}
public static JPanel menuPaneli() {
JPanel panel = new JPanel();
panel.setLayout(null);
panel.setBackground(background("menuPaneli"));
panel.setBounds(20, 20, 150, 400);
int startX = 10;
int startY = 20;
int x = startX;
int y = startY;
int genislik = 130;
int yukseklik = 30;
int farkX = 0;
int farkY = 35;
JButton butonOgrenciKayit = new JButton("Öğrenci Kayıt");
butonOgrenciKayit.setBounds(x, y, genislik, yukseklik);
y = y + farkY;
JButton butonListe5A = new JButton("5/A Liste");
butonListe5A.setBounds(x, y, genislik, yukseklik);
y = y + farkY;
JButton butonListe5B = new JButton("5/B Liste");
butonListe5B.setBounds(x, y, genislik, yukseklik);
y = y + farkY;
JButton butonListe6A = new JButton("6/A Liste");
butonListe6A.setBounds(x, y, genislik, yukseklik);
y = y + farkY;
butonOgrenciKayit.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
anaPanel.removeAll();
anaPanel.add(menuPaneli());
anaPanel.add(okulTabelaPaneli());
anaPanel.add(icerikPaneli("ogrenciKayit"));
anaPanel.repaint();
anaPanel.revalidate();
}
});
butonListe5A.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
anaPanel.removeAll();
anaPanel.add(menuPaneli());
anaPanel.add(okulTabelaPaneli());
anaPanel.add(icerikPaneli(0));
anaPanel.repaint();
anaPanel.revalidate();
}
});
butonListe5B.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
anaPanel.removeAll();
anaPanel.add(menuPaneli());
anaPanel.add(okulTabelaPaneli());
anaPanel.add(icerikPaneli(1));
anaPanel.repaint();
anaPanel.revalidate();
}
});
butonListe6A.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
anaPanel.removeAll();
anaPanel.add(menuPaneli());
anaPanel.add(okulTabelaPaneli());
anaPanel.add(icerikPaneli(2));
anaPanel.repaint();
anaPanel.revalidate();
}
});
panel.add(butonOgrenciKayit);
panel.add(butonListe5A);
panel.add(butonListe5B);
panel.add(butonListe6A);
return panel;
}
public static JPanel icerikPaneli() {
// Uygulama ilk çalistiginda bos gelen içerik paneli.
// Belki bir karsilama mesaji olabilir :)
JPanel panel = new JPanel();
panel.setLayout(null);
panel.setBackground(background("icerikPaneli"));
panel.setBounds(190, 190, 670, 400);
return panel;
}
public static JPanel icerikPaneli(String ogrenciKayit) {
JPanel panel = new JPanel();
panel.setLayout(null);
panel.setBackground(background("icerikPaneli"));
panel.setBounds(190, 190, 670, 500);
int startX = 20;
int startY = 20;
int x = startX;
int y = startY;
int genislikLabel = 150;
int genislikButon = 100;
int genislikField = 350;
int yukseklik = 35;
int farkX = 10;
int farkY = 40;
// Resmi bir JLabel içinde görüntüleyelim
labelOgrenciResmi = new JLabel(vesikalik105x135 ("src/images/defaultOgrenciVesikalik.jpg"));
labelOgrenciResmi.setBounds(550, 20, 105, 135);
// Sınıf, ad, soyad, öğrenci numarası gibi bilgilerin alinmasi burada yapilacak.
JLabel labelSinif = new JLabel("Öğrencinin Sınıfı:");
labelSinif.setFont(font("labelRegular"));
labelSinif.setHorizontalAlignment(JLabel.RIGHT);
labelSinif.setBounds(x, y, genislikLabel, yukseklik);
x = startX + farkX + genislikLabel;
JComboBox comboSinif = new JComboBox(sinif);
comboSinif.setFont(font("labelRegular"));
comboSinif.setBounds(x, y, genislikField, yukseklik);
x = startX;
y = y + farkY;
JLabel labelOgrenciNo = new JLabel("Öğrenci No:");
labelOgrenciNo.setFont(font("labelRegular"));
labelOgrenciNo.setHorizontalAlignment(JLabel.RIGHT);
labelOgrenciNo.setBounds(x, y, genislikLabel, yukseklik);
x = startX + farkX + genislikLabel;
JTextField fieldOgrenciNo = new JTextField();
fieldOgrenciNo.setFont(font("labelRegular"));
fieldOgrenciNo.setBounds(x, y, genislikField, yukseklik);
x = startX;
y = y + farkY;
JLabel labelOgrenciAdi = new JLabel("Öğrenci Adı:");
labelOgrenciAdi.setFont(font("labelRegular"));
labelOgrenciAdi.setHorizontalAlignment(JLabel.RIGHT);
labelOgrenciAdi.setBounds(x, y, genislikLabel, yukseklik);
x = startX + farkX + genislikLabel;
JTextField fieldOgrenciAdi = new JTextField();
fieldOgrenciAdi.setFont(font("labelRegular"));
fieldOgrenciAdi.setBounds(x, y, genislikField, yukseklik);
x = startX;
y = y + farkY;
JLabel labelOgrenciSoyadi = new JLabel("Öğrenci Soyadı:");
labelOgrenciSoyadi.setFont(font("labelRegular"));
labelOgrenciSoyadi.setHorizontalAlignment(JLabel.RIGHT);
labelOgrenciSoyadi.setBounds(x, y, genislikLabel, yukseklik);
x = startX + farkX + genislikLabel;
JTextField fieldOgrenciSoyadi = new JTextField();
fieldOgrenciSoyadi.setFont(font("labelRegular"));
fieldOgrenciSoyadi.setBounds(x, y, genislikField, yukseklik);
x = startX;
y = y + farkY;
JLabel labelResimSec = new JLabel("Öğrenci Resmi:");
labelResimSec.setFont(font("labelRegular"));
labelResimSec.setHorizontalAlignment(JLabel.RIGHT);
labelResimSec.setBounds(x, y, genislikLabel, yukseklik);
x = startX + farkX + genislikLabel;
// Vesikalik için dosya seçiciyi oluşturuyoruz
JFileChooser fileChooser = new JFileChooser();
// İlk açılışta masaüstünü varsayılan dizin olarak ayarlayalım
// ama vesikalik fotograflarin hepsi de src/images/vesikalik klasoru içinde olsun.
// vesikalik klasoru içinden resim seçin.
// Lunux Mac OS X ve Windows isletim sistemlerinde dosya yollari farkli olacagi için
// proje içinden bir klasor gosterdik simdilik.
String desktopPath = System.getProperty("user.home") + File.separator + "Desktop" ;
fileChooser.setCurrentDirectory(new File(desktopPath));
// Dosya seçiciyi açma düğmesi
JButton butonResimSec = new JButton("Resim Seç");
butonResimSec.setFont(font("labelRegular"));
butonResimSec.setBounds(x, y, genislikButon, yukseklik);
x = x + genislikButon + 10;
JTextField fieldDosyaAdi = new JTextField("dosyaAdi.jpg");
fieldDosyaAdi.setEditable(false);
fieldDosyaAdi.setFont(font("labelRegular"));
// Metin rengini GRI ayarlayalim ki editible FALSE oldugu anlasilsin.
fieldDosyaAdi.setForeground(Color.GRAY);
fieldDosyaAdi.setBounds(x, y, genislikField-(genislikButon+10), yukseklik);
x = startX;
y = y + farkY;
JLabel labelOgrenciDogumYili = new JLabel("Öğrenci Doğum Yılı:");
labelOgrenciDogumYili.setFont(font("labelRegular"));
labelOgrenciDogumYili.setHorizontalAlignment(JLabel.RIGHT);
labelOgrenciDogumYili.setBounds(x, y, genislikLabel, yukseklik);
x = startX + farkX + genislikLabel;
String[] yil = {"2008" ,"2009", "2010", "2011", "2012"};
JComboBox comboOgrenciDogumYili = new JComboBox(yil);
comboOgrenciDogumYili.setFont(font("labelRegular"));
comboOgrenciDogumYili.setBounds(x, y, genislikField, yukseklik);
x = startX;
y = y + farkY;
JLabel labelOgrenciCinsiyet = new JLabel("Öğrencinin Cinsiyeti:");
labelOgrenciCinsiyet.setFont(font("labelRegular"));
labelOgrenciCinsiyet.setHorizontalAlignment(JLabel.RIGHT);
labelOgrenciCinsiyet.setBounds(x, y, genislikLabel, yukseklik);
x = startX + farkX + genislikLabel;
String[] cinsiyet = {"Erkek", "Kız"};
JComboBox comboCinsiyet = new JComboBox(cinsiyet);
comboCinsiyet.setFont(font("labelRegular"));
comboCinsiyet.setBounds(x, y, genislikField, yukseklik);
x = startX;
y = y + farkY;
JLabel labelEpostaAdresi = new JLabel("Öğrenci Eposta:");
labelEpostaAdresi.setFont(font("labelRegular"));
labelEpostaAdresi.setHorizontalAlignment(JLabel.RIGHT);
labelEpostaAdresi.setBounds(x, y, genislikLabel, yukseklik);
x = startX + farkX + genislikLabel;
JTextField fieldEpostaAdresi = new JTextField();
fieldEpostaAdresi.setFont(font("labelRegular"));
fieldEpostaAdresi.setBounds(x, y, genislikField, yukseklik);
x = startX;
y = y + farkY;
JLabel labelTelefonNumarasi = new JLabel("Öğrenci Telefon:");
labelTelefonNumarasi.setFont(font("labelRegular"));
labelTelefonNumarasi.setHorizontalAlignment(JLabel.RIGHT);
labelTelefonNumarasi.setBounds(x, y, genislikLabel, yukseklik);
x = startX + farkX + genislikLabel;
JTextField fieldTelefonNumarasi = new JTextField();
fieldTelefonNumarasi.setFont(font("labelRegular"));
fieldTelefonNumarasi.setBounds(x, y, genislikField, yukseklik);
// x = startX;
y = y + farkY + 10; // Son buton için 10 fark ekledik.
JButton butonKaydet = new JButton("Kaydet");
butonKaydet.setFont(font("labelRegular"));
butonKaydet.setBounds(x, y, genislikButon, yukseklik);
butonResimSec.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
panel.remove(labelOgrenciResmi);
String secilenDosyaYolu = "src/images/hata.jpg";
int returnValue = fileChooser.showOpenDialog(null);
// Kullanıcı bir dosya seçtiyse
if (returnValue == JFileChooser.APPROVE_OPTION) {
// Seçilen dosyanın yolunu alın
secilenDosyaYolu = fileChooser.getSelectedFile().getPath();
// Burada seçilen dosya yolu ile ne yapmak istiyorsanız yapabilirsiniz
// Örneğin, bu yolu öğrenci bilgilerine bağlayabilirsiniz.
// Burada seçilen dosya türünü kontrol edin (örneğin, .jpg)
if (secilenDosyaYolu.toLowerCase().endsWith(".jpg")) {
// Seçilen dosya bir .jpg ise, resmi görüntüleyin
labelOgrenciResmi.setIcon(vesikalik105x135(secilenDosyaYolu));
File secilenDosya = new File(secilenDosyaYolu);
String vesikalikDosyaAdi = secilenDosya.getName();
fieldDosyaAdi.setText(vesikalikDosyaAdi);
} else {
// Seçilen dosya .jpg değilse, hata mesajı görüntüleyin ve varsayılan resmi gösterin
labelOgrenciResmi.setIcon(vesikalik105x135("src/images/hata.jpg"));
JOptionPane.showMessageDialog(null, "Geçersiz dosya türü! Sadece .jpg dosyaları desteklenir.", "Hata", JOptionPane.ERROR_MESSAGE);
}
panel.add(labelOgrenciResmi);
panel.revalidate();
panel.repaint();
} else {
labelOgrenciResmi.setIcon(vesikalik105x135 (secilenDosyaYolu));
panel.add(labelOgrenciResmi);
panel.revalidate();
panel.repaint();
}
}
});
butonKaydet.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
// Ögrenci bilgileri
String infoSinif = (String) comboSinif.getSelectedItem();
String infoNo = fieldOgrenciNo.getText();
String infoAdi = fieldOgrenciAdi.getText();
String infoSoyadi = fieldOgrenciSoyadi.getText();
String infoVesikalik = fieldDosyaAdi.getText();
String infoDogumyili = (String) comboOgrenciDogumYili.getSelectedItem();
String infoCinsiyet = (String) comboCinsiyet.getSelectedItem();
String infoEposta = fieldEpostaAdresi.getText();
String infoTelefon = fieldTelefonNumarasi.getText();
String formInfo = infoSinif + "," + infoNo + "," + infoAdi + "," + infoSoyadi + ","
+ infoVesikalik + "," + infoDogumyili + "," + infoCinsiyet + ","
+ infoEposta + "," + infoTelefon + "\n";
try {
FileWriter dosyaOgrenciBilgileri = new FileWriter("src/data/ogrenciBilgileri.txt", true);
BufferedWriter dosyaKayit = new BufferedWriter(dosyaOgrenciBilgileri);
// Öğrenci bilgilerini dosyaya yazalım
dosyaKayit.write(formInfo);
dosyaKayit.close();
} catch (IOException ex) {
ex.printStackTrace();
}
comboSinif.setSelectedIndex(0);
fieldOgrenciNo.setText("");
fieldOgrenciAdi.setText("");
fieldOgrenciSoyadi.setText("");
fieldDosyaAdi.setText("");
comboOgrenciDogumYili.setSelectedIndex(0);
comboCinsiyet.setSelectedIndex(0);
fieldEpostaAdresi.setText("");
fieldTelefonNumarasi.setText("");
}
});
panel.add(labelOgrenciResmi);
panel.add(labelOgrenciNo);
panel.add(fieldOgrenciNo);
panel.add(labelSinif);
panel.add(comboSinif);
panel.add(labelOgrenciAdi);
panel.add(fieldOgrenciAdi);
panel.add(labelOgrenciSoyadi);
panel.add(fieldOgrenciSoyadi);
panel.add(labelResimSec);
panel.add(butonResimSec);
panel.add(fieldDosyaAdi);
panel.add(labelOgrenciDogumYili);
panel.add(comboOgrenciDogumYili);
panel.add(labelOgrenciCinsiyet);
panel.add(comboCinsiyet);
panel.add(labelEpostaAdresi);
panel.add(fieldEpostaAdresi);
panel.add(labelTelefonNumarasi);
panel.add(fieldTelefonNumarasi);
panel.add(butonKaydet);
return panel;
}
// integer deger alip ilgili sinifin ogrenci listesini gosterecegiz.
// parametre : 0 - 5/A
// parametre : 1 - 5/B
// parametre : 2 - 6/A
public static JPanel icerikPaneli(int sinif) {
String sube = "";
int mevcudiyet = 0;
String[][] ilgiliSinifListesi = null;
int txtSatirSayisi = txtSatirSayisi();
tamListe = new String[txtSatirSayisi][9];
tamListe = toplamUcSinifListesi();
subeMevcudu5A = subeMevcudu("5/A");
subeMevcudu5B = subeMevcudu("5/B");
subeMevcudu6A = subeMevcudu("6/A");
// Subelerin kendi listelerini tamListe dizisinden ayikliyoruz.
listeSube5A = new String[subeMevcudu5A][9];
listeSube5A = subeListesi(0);
listeSube5B = new String[subeMevcudu5B][9];
listeSube5B = subeListesi(1);
listeSube6A = new String[subeMevcudu6A][9];
listeSube6A = subeListesi(2);
switch (sinif) {
case 0 :
sube = "5/A";
mevcudiyet = subeMevcudu5A;
ilgiliSinifListesi = new String[mevcudiyet][9];
ilgiliSinifListesi = listeSube5A;
break;
case 1 :
sube = "5/B";
mevcudiyet = subeMevcudu5B;
ilgiliSinifListesi = new String[mevcudiyet][9];
ilgiliSinifListesi = listeSube5B;
break;
case 2 :
sube = "6/A";
mevcudiyet = subeMevcudu6A;
ilgiliSinifListesi = new String[mevcudiyet][9];
ilgiliSinifListesi = listeSube6A;
break;
}
int mevcut = 0;
if (sinif == 0) mevcut = subeMevcudu5A;
if (sinif == 1) mevcut = subeMevcudu5B;
if (sinif == 2) mevcut = subeMevcudu6A;
JPanel panel = new JPanel();
panel.setLayout(null);
panel.setBackground(background("icerikPaneli"));
panel.setBounds(190, 190, 670, anaPanelYukseklik-210);
// -210 ile içerik panelinin anaPanelin içinde kalmasini sagliyoruz.
int startX = 20;
int startY = 20;
int x = startX;
int y = startY;
int genislikLabel = 150;
int genislikButon = 100;
int genislikField = 350;
int yukseklik = 35;
int farkX = 10;
int farkY = 40;
File dosyaSubeKodu = new File("src/images/SinifSube.jpg");
Image imageYuklenenSubeKodu = null;
try {
imageYuklenenSubeKodu = ImageIO.read(dosyaSubeKodu);
} catch (IOException e1) {
e1.printStackTrace();
}
ImageIcon imageIconSubeKodu = new ImageIcon(imageYuklenenSubeKodu);
JLabel labelSubeKoduTabela = new JLabel(imageIconSubeKodu);
labelSubeKoduTabela.setBounds(20, 20, 320, 96);
JLabel labelSinifSubeKodu = new JLabel(sube);
labelSinifSubeKodu.setFont(font("labelSubeKoduTabela"));
labelSinifSubeKodu.setBounds(50, 42, 100, 50);
JLabel labelSinifMevcudu = new JLabel("Sınıf Mevcudu");
labelSinifMevcudu.setFont(font("labelSubeMevcuduTabela"));
labelSinifMevcudu.setHorizontalAlignment(JLabel.CENTER);
labelSinifMevcudu.setBounds(150, 30, 200, 20);
JLabel labelSinifSubeMevcudu = new JLabel(""+mevcut);
labelSinifSubeMevcudu.setFont(font("labelSubeKoduTabela"));
labelSinifSubeMevcudu.setHorizontalAlignment(JLabel.CENTER);
labelSinifSubeMevcudu.setBounds(150, 50, 200, 50);
// Ogrencilerin vesikalik fotograflarinin yolu
String vesikalikYolu = "src/images/vesikalik/";
JLabel[] labelOgrenciListesi = new JLabel[mevcudiyet];
JLabel[] labelOgrenciVesikalik = new JLabel[mevcudiyet];
JLabel[] labelOgrenciAdSoyad = new JLabel[mevcudiyet];
JLabel[] labelOgrenciNo = new JLabel[mevcudiyet];
JLabel[] labelOgrenciInfo = new JLabel[mevcudiyet];
for (int i=0 ; i<mevcudiyet ; i++) {
labelOgrenciVesikalik[i] = new JLabel(vesikalik105x135 (vesikalikYolu+ilgiliSinifListesi[i][4]));
labelOgrenciVesikalik[i].setBounds(20, 130+(i*155), 105, 135);
panel.add(labelOgrenciVesikalik[i]);
labelOgrenciAdSoyad[i] = new JLabel(ilgiliSinifListesi[i][2] + " " + ilgiliSinifListesi[i][3]);
labelOgrenciAdSoyad[i].setFont(font("labelOgrenciAdSoyad"));
labelOgrenciAdSoyad[i].setBounds(135, 130+(i*155), 500, 30);
panel.add(labelOgrenciAdSoyad[i]);
labelOgrenciNo[i] = new JLabel(ilgiliSinifListesi[i][1]);
labelOgrenciNo[i].setFont(font("labelSubeKoduTabela"));
labelOgrenciNo[i].setBounds(135, 170+(i*155), 105, 50);
panel.add(labelOgrenciNo[i]);
String labelOgrenciInfoSatiri = ilgiliSinifListesi[i][5] + " / "
+ ilgiliSinifListesi[i][6] + " / "
+ ilgiliSinifListesi[i][7] + " / "
+ ilgiliSinifListesi[i][8];
labelOgrenciInfo[i] = new JLabel(labelOgrenciInfoSatiri);
labelOgrenciInfo[i].setFont(font("labelOgrenciInfo"));
labelOgrenciInfo[i].setBounds(135, 240+(i*155), 500, 30);
panel.add(labelOgrenciInfo[i]);
}
panel.add(labelSinifSubeKodu);
panel.add(labelSinifMevcudu);
panel.add(labelSinifSubeMevcudu);
panel.add(labelSubeKoduTabela);
return panel;
}
public static Font font(String fontAlani) {
Font font = new Font("Ubuntu", Font.PLAIN, 15);
switch (fontAlani) {
case "labelRegular" :
font = new Font("Ubuntu", Font.PLAIN, 15);
break;
case "labelOkulIsmi" :
font = new Font("Ubuntu", Font.BOLD, 35);
break;
case "labelSubeKoduTabela":
font = new Font("Ubuntu", Font.BOLD, 55);
break;
case "labelSubeMevcuduTabela":
font = new Font("Ubuntu", Font.PLAIN, 17);
break;
case "labelOgrenciAdSoyad":
font = new Font("Ubuntu", Font.PLAIN, 27);
break;
case "labelOkulIlIlce":
font = new Font("Ubuntu", Font.PLAIN, 35);
break;
case "labelOkulAdi":
font = new Font("Ubuntu", Font.BOLD, 35);
break;
case "labelOgrenciInfo":
font = new Font("Ubuntu", Font.PLAIN, 15);
break;
}
return font;
}
public static Color background(String renkAlani) {
Color color = new Color(109, 63, 140);
switch (renkAlani) {
case "frame" : color = new Color(242, 207, 29);
break;
case "anaPanel" : color = new Color(217, 158, 50);
break;
case "menuPaneli" : color = new Color(242, 240, 213);
break;
case "icerikPaneli" : color = new Color(194, 255, 184);
break;
case "logoPaneli" : color = new Color(133, 211, 242);
break;
}
return color;
}
public static ImageIcon vesikalik105x135 (String dosyaYolu) {
// Bu metod yuklenen vesiklaligin 105x135 pixel olarak
// yeniden ölçeklendirilmesini saglar.
// ve resmi ImageIcon olarak return eder..
File dosyaYuklenenVesikalik = new File(dosyaYolu);
Image imageYuklenenVesikalik = null;
try {
imageYuklenenVesikalik = ImageIO.read(dosyaYuklenenVesikalik);
} catch (IOException e1) {
e1.printStackTrace();
}
int vesikalikGenislik = 105;
int vesikalikYukseklik = 135;
Image imageVesiklaik = imageYuklenenVesikalik.getScaledInstance(vesikalikGenislik, vesikalikYukseklik, Image.SCALE_DEFAULT);
ImageIcon vesikalikSonHali = new ImageIcon(imageVesiklaik);
return vesikalikSonHali;
}
public static int txtSatirSayisi() {
int satir = 0;
// Satir sayisini hesaplayalim.
try {
FileReader fileReader = new FileReader("src/data/ogrenciBilgileri.txt");
BufferedReader bufferedReader = new BufferedReader(fileReader);
String line;
while ((line = bufferedReader.readLine()) != null) {
satir++;
}
bufferedReader.close();
} catch (IOException e) {
e.printStackTrace();
}
// System.out.println("TXT Satir sayisi = " + satir);
return satir;
}
// ogrenciBilgileri.txt dosyasini bütün kayitlari Sitring[][] dizi olarak return eder.
public static String[][] toplamUcSinifListesi() {
String[][] tamListe = new String[txtSatirSayisi()][9];
try {
FileReader fileReader = new FileReader("src/data/ogrenciBilgileri.txt");
BufferedReader bufferedReader = new BufferedReader(fileReader);
String line;
int satirIndex = 0;
while ((line = bufferedReader.readLine()) != null) {
// Satırı virgüllerle bölelim
String[] veri = line.split(",");
// Verileri ikili String dizisine ekleyelim
if (veri.length == 9) { // Ögrenci kayitta 9 sütunumuz vardi
tamListe[satirIndex] = veri;
satirIndex++;
}
}
bufferedReader.close();
} catch (IOException e) {
e.printStackTrace();
}
return tamListe;
}
// Bu metod integer parametre ile sinifin ogrenci listesini return eder..
// parametre : 0 -> 5/A
// parametre : 1 -> 5/B
// parametre : 2 -> 6/A
public static String[][] subeListesi(int sinifSube) {
String subeIsmi = "";
switch (sinifSube) {
case 0 :
subeIsmi = "5/A";
break;
case 1 :
subeIsmi = "5/B";
break;
case 2 :
subeIsmi = "6/A";
break;
}
int diziSubeMevcudu = 0;
if (sinifSube == 0) diziSubeMevcudu = subeMevcudu5A;
if (sinifSube == 1) diziSubeMevcudu = subeMevcudu5B;
if (sinifSube == 2) diziSubeMevcudu = subeMevcudu6A;
String[][] diziSube = new String[diziSubeMevcudu][9];
int sube = -1;
for (int i=0 ; i<tamListe.length ; i++) {
if (tamListe[i][0].equals(subeIsmi)) {
sube++;
for (int j=0 ; j<9 ; j++) {
diziSube[sube][j] = tamListe[i][j];
}
}
}
return diziSube;
}
// Bu metod String parametre ile sinifin ogrenci mevcudunu return eder..
// parametre : 5/A
// parametre : 5/B
// parametre : 6/A
public static int subeMevcudu(String sube) {
int toplamMevcutOgrenci = txtSatirSayisi();
int mevcut = 0;
int sube5A = 0;
int sube5B = 0;
int sube6A = 0;
for(int i=0 ; i<toplamMevcutOgrenci ; i ++) {
if (tamListe[i][0].equals("5/A")) sube5A++;
if (tamListe[i][0].equals("5/B")) sube5B++;
if (tamListe[i][0].equals("6/A")) sube6A++;
}
if (sube.equals("5/A")) mevcut = sube5A;
if (sube.equals("5/B")) mevcut = sube5B;
if (sube.equals("6/A")) mevcut = sube6A;
return mevcut;
}
public static void main(String[] args) {
new JavaSinifAsistani();
}
}