📄 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(); } }