📄 BorderLayoutGridLayoutTakvim.java .java dosyası

⬇️ İndir
import java.awt.*; import java.awt.event.*; import java.util.Random; import javax.swing.*; /** Java Blackbourd YouTube kanali. Ders : 056 BorderLayout ve GridLayout kullanimi Takvim görüntüsü düzenleme ve haftanin gunlerini ekleme. Butun yil ile... */ public class BorderLayoutGridLayoutTakvim extends JFrame implements ActionListener { String[] aylar = {"Boş...", "OCAK 2022 (7X7)", "ŞUBAT 2022 (7X7)", "MART 2022 (7X7)", "NİSAN 2022 (7X7)", "MAYIS 2022 (7X7)", "HAZİRAN 2022 (7X7)", "TEMMUZ 2022 (7X7)", "AĞUSTOS 2022 (7X7)", "EYLÜL 2022 (7X7)", "EKİM 2022 (7X7)", "KASIM 2022 (7X7)", "ARALIK 2022 (7X7)"} ; JComboBox comboListe = new JComboBox(aylar); JLabel label = new JLabel("Açılış: Ay seç!"); JPanel panel = new JPanel(); public BorderLayoutGridLayoutTakvim() { setLayout(new BorderLayout()); comboListe.setSelectedIndex(0); comboListe.addActionListener(this); label.setVerticalAlignment(JLabel.CENTER); label.setHorizontalAlignment(JLabel.CENTER); label.setFont(new Font("Verdana", Font.BOLD, 59)); label.setPreferredSize(new Dimension(150, 150)); add(comboListe, BorderLayout.NORTH); add(label, BorderLayout.SOUTH); add(panel, BorderLayout.CENTER); setSize(1024, 768); setTitle("2022 Takvimi hafta gunleriyle. Java Blackboard [ 056 ]"); setLocationRelativeTo(null); // Ekran ortasina ortalar. setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); setVisible(true); } public void actionPerformed(ActionEvent e) { if(e.getSource() == comboListe) { JComboBox cb = (JComboBox) e.getSource(); String madde = (String) cb.getSelectedItem(); switch (madde) { case "OCAK 2022 (7X7)" : label.setText("OCAK 2022"); panel.removeAll(); panel.setLayout(new GridLayout()); panel.add(pastelRenkliPanel(1)); add(panel); revalidate(); break; case "ŞUBAT 2022 (7X7)" : label.setText("ŞUBAT 2022"); panel.removeAll(); panel.setLayout(new GridLayout()); panel.add(pastelRenkliPanel(2)); add(panel); revalidate(); break; case "MART 2022 (7X7)" : label.setText("MART 2022"); panel.removeAll(); panel.setLayout(new GridLayout()); panel.add(pastelRenkliPanel(3)); add(panel); revalidate(); break; case "NİSAN 2022 (7X7)" : label.setText("NİSAN 2022"); panel.removeAll(); panel.setLayout(new GridLayout()); panel.add(pastelRenkliPanel(4)); add(panel); revalidate(); break; case "MAYIS 2022 (7X7)" : label.setText("MAYIS 2022"); panel.removeAll(); panel.setLayout(new GridLayout()); panel.add(pastelRenkliPanel(5)); add(panel); revalidate(); break; case "HAZİRAN 2022 (7X7)": label.setText("HAZİRAN 2022"); panel.removeAll(); panel.setLayout(new GridLayout()); panel.add(pastelRenkliPanel(6)); add(panel); revalidate(); break; case "TEMMUZ 2022 (7X7)" : label.setText("TEMMUZ 2022"); panel.removeAll(); panel.setLayout(new GridLayout()); panel.add(pastelRenkliPanel(7)); add(panel); revalidate(); break; case "AĞUSTOS 2022 (7X7)" : label.setText("AĞUSTOS 2022"); panel.removeAll(); panel.setLayout(new GridLayout()); panel.add(pastelRenkliPanel(8)); add(panel); revalidate(); break; case "EYLÜL 2022 (7X7)" : label.setText("EYLÜL 2022"); panel.removeAll(); panel.setLayout(new GridLayout()); panel.add(pastelRenkliPanel(9)); add(panel); revalidate(); break; case "EKİM 2022 (7X7)" : label.setText("EKİM 2022"); panel.removeAll(); panel.setLayout(new GridLayout()); panel.add(pastelRenkliPanel(10)); add(panel); revalidate(); break; case "KASIM 2022 (7X7)" : label.setText("KASIM 2022"); panel.removeAll(); panel.setLayout(new GridLayout()); panel.add(pastelRenkliPanel(11)); add(panel); revalidate(); break; case "ARALIK 2022 (7X7)" : label.setText("ARALIK 2022"); panel.removeAll(); panel.setLayout(new GridLayout()); panel.add(pastelRenkliPanel(12)); add(panel); revalidate(); break; default : label.setText("Olmayan bi'ay seçildi..."); panel.removeAll(); panel.setLayout(new GridLayout()); panel.add(pastelRenkliPanel(-1)); add(panel); revalidate(); } } } public JPanel pastelRenkliPanel(int ay) { String[] aylar = new String[13]; // 12 ay var ama bir tane de SIFIRIMIZ var o da Bos.. için aylar[0] = "Bos..."; aylar[1] = "OCAK"; aylar[2] = "SUBAT"; aylar[3] = "MART"; aylar[4] = "NISAN"; aylar[5] = "MAYIS"; aylar[6] = "HAZIRAN"; aylar[7] = "TEMMUZ"; aylar[8] = "AGUSTOS"; aylar[9] = "EYLÜL"; aylar[10] = "EKIM"; aylar[11] = "KASIM"; aylar[12] = "ARALIK"; String[] gunler = new String[7]; gunler[0] = "Pazartesi"; gunler[1] = "Salı"; gunler[2] = "Çarşamba"; gunler[3] = "Perşembe"; gunler[4] = "Cuma"; gunler[5] = "Cumartesi"; gunler[6] = "Pazar"; int[] gunAdedi = new int[13]; // 12 ay var ama bir tane de SIFIRIMIZ var o da Bos.. için gunAdedi[0] = 0; gunAdedi[1] = 31; gunAdedi[2] = 28; gunAdedi[3] = 31; gunAdedi[4] = 30; gunAdedi[5] = 31; gunAdedi[6] = 30; gunAdedi[7] = 31; gunAdedi[8] = 31; gunAdedi[9] = 30; gunAdedi[10] = 31; gunAdedi[11] = 30; gunAdedi[12] = 31; int[] ayinIlkGunu = new int[13]; // 12 ay var ama bir tane de SIFIRIMIZ var o da Bos.. için ayinIlkGunu[0] = 0; ayinIlkGunu[1] = 6; ayinIlkGunu[2] = 2; ayinIlkGunu[3] = 2; ayinIlkGunu[4] = 5; ayinIlkGunu[5] = 7; ayinIlkGunu[6] = 3; ayinIlkGunu[7] = 5; ayinIlkGunu[8] = 1; ayinIlkGunu[9] = 4; ayinIlkGunu[10] = 6; ayinIlkGunu[11] = 2; ayinIlkGunu[12] = 4; Color[] renkler = new Color[10]; renkler[0] = new Color(242, 234, 228); // gun acik renk renkler[1] = new Color(217, 210, 204); // gun koyu renk renkler[2] = new Color(115, 108, 99); // gun yazi rengi renkler[3] = new Color(213, 229, 242); // Ay acik renk renkler[4] = new Color(163, 186, 217); // Ay koyu renk renkler[5] = new Color(34, 47, 64); // Ay sayilar renkler[6] = new Color(224, 198, 215); // Bos açik renk renkler[7] = new Color(204, 161, 180); // Bos koyu renk renkler[8] = new Color(255, 238, 88); // Acik Sari renkler[9] = new Color(251, 192, 45); // Koyu sari JPanel panel = new JPanel(); panel.setLayout(new GridLayout(7,7)); JPanel[] hucrePanel = new JPanel[49]; for (int i=0; i<49; i++ ) { hucrePanel[i] = new JPanel(); hucrePanel[i].setLayout(new BorderLayout()); } JLabel[] label = new JLabel[49]; for (int i=0; i<49; i++ ) label[i] = new JLabel(); for (int i=0; i<49; i++ ) { if (ay==-1) { // Olmayan ay seçildiyse -1 geliyor parametre olarak... if (i<7) { // Olmayan Ay seçimi için Haftanin gunlerini ekliyoruz ilk satira. label[i].setText(gunler[i]);; label[i].setForeground(renkler[2]); label[i].setFont(new Font("Verdana", Font.PLAIN, 19)); hucrePanel[i].setBackground(i%2 == 0 ? renkler[1] : renkler[0]); } else { // Diger bütün bos gunlerini ekliyoruz. label[i].setText(""); hucrePanel[i].setBackground(i%2 == 0 ? renkler[7] : renkler[6]); } } else if (i<7) { // Haftanin gunlerini ekliyoruz ilk satira. label[i].setText(gunler[i]);; label[i].setForeground(renkler[2]); label[i].setFont(new Font("Verdana", Font.PLAIN, 19)); hucrePanel[i].setBackground(i%2 == 0 ? renkler[1] : renkler[0]); } else if (i<=(7+ayinIlkGunu[ay])-2 || (i>=(gunAdedi[ay]+7+ayinIlkGunu[ay])-1)) { // Ayin basindaki ve sonundaki bos gunlerini ekliyoruz. label[i].setText(""); hucrePanel[i].setBackground(i%2 == 1 ? renkler[3] : renkler[4]); } else if (i>(7+ayinIlkGunu[ay]) || i<=(gunAdedi[ay]+7+ayinIlkGunu[ay]) ) { // Ayin kendi gunlerini ekliyoruz. int x = 7+ayinIlkGunu[ay]-2; label[i].setText(""+(i-x)); label[i].setFont(new Font("Verdana", Font.BOLD, 51)); hucrePanel[i].setBackground(i%2 == 1 ? renkler[3] : renkler[4]); } label[i].setPreferredSize( new Dimension(100,70) ); label[i].setHorizontalAlignment( SwingConstants.CENTER ); hucrePanel[i].add(label[i], BorderLayout.CENTER); hucrePanel[i].add(label[i]); } for (int i=0; i<49; i++) panel.add(hucrePanel[i]); return panel; } }