📄 SecmeliNufusGrafik.java .java dosyası
⬇️ İndir
import java.awt.Color;
import java.awt.Font;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.event.ItemEvent;
import java.awt.event.ItemListener;
import java.util.Random;
import javax.swing.BorderFactory;
import javax.swing.JComboBox;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.SwingUtilities;
import javax.swing.border.LineBorder;
import javax.swing.border.TitledBorder;
public class SecmeliNufusGrafik {
public static JPanel anapanel;
public static String[] sehirler = new String[9];
public static int[] nufuslar = new int[9];
public SecmeliNufusGrafik() {
JFrame frame = new JFrame("Karşılaştırmalı Nüfus Grafikleri | Java Blackboard [115]");
anapanel = new JPanel();
anapanel.setLayout(null);
anapanel.setBackground(new Color(140, 100, 140));
anapanel.setBounds(15,15,770,470);
anapanel.add(infoPaneli(0,4,2,5));
anapanel.add(grafikPaneli(0,4,2,5));
frame.add(anapanel);
frame.setSize(800,530);
frame.setLayout(null);
frame.setLocationRelativeTo(null);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setResizable(true);
frame.setVisible(true);
}
public static JPanel infoPaneli(int sehir1, int sehir2, int sehir3, int sehir4) {
JPanel panel = new JPanel();
panel.setLayout(null);
panel.setBorder(new TitledBorder("Info Paneli"));
panel.setBackground(new Color(242, 220, 242));
panel.setBounds(15,15,250,440);
LineBorder labelCerceve = new LineBorder(Color.black);
sehirler[0] = "Afyonkarahisar";
sehirler[1] = "Isparta";
sehirler[2] = "Antalya";
sehirler[3] = "Adıyaman";
sehirler[4] = "Elazığ";
sehirler[5] = "Kahramanmaraş";
sehirler[6] = "Hatay";
sehirler[7] = "Muğla";
sehirler[8] = "Diyarbakır";
nufuslar[0] = 747554;
nufuslar[1] = 445325;
nufuslar[2] = 2688004;
nufuslar[3] = 635169;
nufuslar[4] = 591497;
nufuslar[5] = 1177436;
nufuslar[6] = 1686043;
nufuslar[7] = 1048185;
nufuslar[8] = 1804880;
int x = 25;
int y = 25;
int w = 200;
int h = 30;
int f = 15;
JComboBox cb1 = new JComboBox(sehirler);
cb1.setSelectedIndex(sehir1);
JLabel lb1 = new JLabel(""+nufuslar[cb1.getSelectedIndex()]);
lb1.setBorder(new TitledBorder(BorderFactory.createTitledBorder(labelCerceve, (String) cb1.getSelectedItem())));
JComboBox cb2 = new JComboBox(sehirler);
cb2.setSelectedIndex(sehir2);
JLabel lb2 = new JLabel(""+nufuslar[cb2.getSelectedIndex()]);
lb2.setBorder(new TitledBorder(BorderFactory.createTitledBorder(labelCerceve, (String) cb2.getSelectedItem())));
JComboBox cb3 = new JComboBox(sehirler);
cb3.setSelectedIndex(sehir3);
JLabel lb3 = new JLabel(""+nufuslar[cb3.getSelectedIndex()]);
lb3.setBorder(new TitledBorder(BorderFactory.createTitledBorder(labelCerceve, (String) cb3.getSelectedItem())));
JComboBox cb4 = new JComboBox(sehirler);
cb4.setSelectedIndex(sehir4);
JLabel lb4 = new JLabel(""+nufuslar[cb4.getSelectedIndex()]);
lb4.setBorder(new TitledBorder(BorderFactory.createTitledBorder(labelCerceve, (String) cb4.getSelectedItem())));
cb1.addItemListener(new ItemListener() {
public void itemStateChanged(ItemEvent arg0) {
int secilen_1 = cb1.getSelectedIndex();
int secilen_2 = cb2.getSelectedIndex();
int secilen_3 = cb3.getSelectedIndex();
int secilen_4 = cb4.getSelectedIndex();
anapanel.removeAll();
anapanel.add(infoPaneli(secilen_1,secilen_2,secilen_3,secilen_4));
anapanel.add(grafikPaneli(secilen_1,secilen_2,secilen_3,secilen_4));
anapanel.revalidate();
anapanel.repaint();
}
});
cb2.addItemListener(new ItemListener() {
public void itemStateChanged(ItemEvent arg0) {
int secilen_1 = cb1.getSelectedIndex();
int secilen_2 = cb2.getSelectedIndex();
int secilen_3 = cb3.getSelectedIndex();
int secilen_4 = cb4.getSelectedIndex();
anapanel.removeAll();
anapanel.add(infoPaneli(secilen_1,secilen_2,secilen_3,secilen_4));
anapanel.add(grafikPaneli(secilen_1,secilen_2,secilen_3,secilen_4));
anapanel.revalidate();
anapanel.repaint();
}
});
cb3.addItemListener(new ItemListener() {
public void itemStateChanged(ItemEvent arg0) {
int secilen_1 = cb1.getSelectedIndex();
int secilen_2 = cb2.getSelectedIndex();
int secilen_3 = cb3.getSelectedIndex();
int secilen_4 = cb4.getSelectedIndex();
anapanel.removeAll();
anapanel.add(infoPaneli(secilen_1,secilen_2,secilen_3,secilen_4));
anapanel.add(grafikPaneli(secilen_1,secilen_2,secilen_3,secilen_4));
anapanel.revalidate();
anapanel.repaint();
}
});
cb4.addItemListener(new ItemListener() {
public void itemStateChanged(ItemEvent arg0) {
int secilen_1 = cb1.getSelectedIndex();
int secilen_2 = cb2.getSelectedIndex();
int secilen_3 = cb3.getSelectedIndex();
int secilen_4 = cb4.getSelectedIndex();
anapanel.removeAll();
anapanel.add(infoPaneli(secilen_1,secilen_2,secilen_3,secilen_4));
anapanel.add(grafikPaneli(secilen_1,secilen_2,secilen_3,secilen_4));
anapanel.revalidate();
anapanel.repaint();
}
});
cb1.setBounds(x, y, w, h); y = y + h + f;
lb1.setBounds(x, y, w, h+15); y = y + h + f + 15;
cb2.setBounds(x, y, w, h); y = y + h + f;
lb2.setBounds(x, y, w, h+15); y = y + h + f + 15;
cb3.setBounds(x, y, w, h); y = y + h + f;
lb3.setBounds(x, y, w, h+15); y = y + h + f + 15;
cb4.setBounds(x, y, w, h); y = y + h + f;
lb4.setBounds(x, y, w, h+15);
panel.add(cb1);
panel.add(lb1);
panel.add(cb2);
panel.add(lb2);
panel.add(cb3);
panel.add(lb3);
panel.add(cb4);
panel.add(lb4);
return panel;
}
public static JPanel grafikPaneli(int sehir1, int sehir2, int sehir3, int sehir4) {
JPanel panel = new JPanel() {
protected void paintComponent(Graphics grafik) {
super.paintComponent(grafik);
Graphics2D grafik2D = (Graphics2D) grafik;
int[] secilenler = new int[4];
secilenler[0] = nufuslar[sehir1];
secilenler[1] = nufuslar[sehir2];
secilenler[2] = nufuslar[sehir3];
secilenler[3] = nufuslar[sehir4];
String[] secilenler_sehir = new String[4];
secilenler_sehir[0] = sehirler[sehir1];
secilenler_sehir[1] = sehirler[sehir2];
secilenler_sehir[2] = sehirler[sehir3];
secilenler_sehir[3] = sehirler[sehir4];
int genislik = getWidth(); // Panelin genisligi
int yukseklik = getHeight(); // panelin yuksekligi
int barGenislik = genislik/((secilenler.length*2)+1);
int maxNufus = Integer.MIN_VALUE;
Random r = new Random();
Color[] barRenk = new Color[secilenler.length];
for(int i = 0; i<secilenler.length; i++) {
barRenk[i] = new Color(r.nextInt(130)+125, r.nextInt(130)+125, r.nextInt(130)+125);
}
for(int i = 0; i<secilenler.length; i++) {
if(secilenler[i]>maxNufus) {
maxNufus = secilenler[i];
}
}
for(int i = 0; i<secilenler.length; i++) {
int barYukseklik = (int) (((double) secilenler[i]/(double) maxNufus)*yukseklik*0.8);
int x = i*(barGenislik*2)+barGenislik;
int y = yukseklik-barYukseklik-50; // 700 - 500 - 50 = 150
grafik2D.setColor(barRenk[i]);
grafik2D.fillRect(x, y, barGenislik, barYukseklik);
Font font = new Font("Ubuntu", Font.BOLD, 17);
grafik2D.setFont(font);
grafik2D.drawString(secilenler_sehir[i], x, yukseklik-25);
grafik2D.drawString(secilenler[i]+"", x, y-5);
}
}
};
panel.setLayout(null);
panel.setBorder(new TitledBorder("Grafik Paneli"));
panel.setBackground(new Color(17, 32, 38));
panel.setBounds(280,15,475,440);
return panel;
}
public static void main(String[] args) {
SwingUtilities.invokeLater(() -> {
new SecmeliNufusGrafik();
});
}
}