import java.awt.Color;
import java.awt.Font;
import java.awt.event.ItemEvent;
import java.awt.event.ItemListener;
import java.util.*;
import java.util.Map.*;

import javax.swing.*;

public class HashMapIlcelerNufus {
	
	HashMapIlcelerNufus() {
		
		int x = 10;
		int y = 10;
		int w = 100; 
		int h = 30;
		int xf = w + 15;
		int yf = h + 15;
		
		JFrame frame = new JFrame("HashMap ComboBox Kullanımı");
		frame.setLayout(null);
		
		JPanel anapanel = new JPanel();
		anapanel.setLayout(null);
		anapanel.setBackground(new Color(200, 182, 198));
		anapanel.setBounds(25,25,350,350);
		
		JLabel sehirSecBaslik = new JLabel("Şehir Seçiniz");
		sehirSecBaslik.setFont(new Font("Ubuntu", Font.BOLD ,20));
		sehirSecBaslik.setBounds(x,y,w+50,h); x = x + xf;
		
		String[] sehirlerString = {"Şehir Seçiniz","Adıyaman", "Antalya", "İstanbul"};
		
		JComboBox sehirler = new JComboBox(sehirlerString);
		sehirler.setBounds(x+25,y,w+35,h); x = 15; y = y + yf;
		
		JLabel belediyelerBaslik = new JLabel("Belediyeler");
		belediyelerBaslik.setHorizontalAlignment(JLabel.CENTER);
		belediyelerBaslik.setFont(new Font("Ubuntu", Font.BOLD ,25));
		belediyelerBaslik.setBounds(x,y,350,30); y = y + yf;
		
		JTextArea texta = new JTextArea();
		texta.setEditable(false);
		texta.setFont(new Font("Ubuntu", Font.PLAIN ,17));
		texta.setBounds(x,y,320,220); y = y + yf;

		sehirler.addItemListener(new ItemListener() {
			public void itemStateChanged(ItemEvent e) {      
				
				String sehir = (String) sehirler.getSelectedItem();		
				
				// generic HashMap tanimliyoruz
				HashMap<String, String> belediyeler = new HashMap<>();
				
                              // key         value
	            belediyeler.put("Gerger","Adıyaman");
	            belediyeler.put("Besni","Adıyaman");
	            belediyeler.put("Gölbaşı","Adıyaman");
	            belediyeler.put("Kahta","Adıyaman");
	            belediyeler.put("Çelikhan", "Adıyaman");
	            
	            belediyeler.put("Alanya","Antalya");
	            belediyeler.put("Muratpaşa","Antalya");
	            belediyeler.put("Kemer","Antalya");
	            belediyeler.put("Serik","Antalya");
	            belediyeler.put("Kepez", "Antalya");
	            
	            belediyeler.put("Kadıköy","İstanbul");
	            belediyeler.put("Adalar","İstanbul");
	            belediyeler.put("Beşiktaş","İstanbul");
	            belediyeler.put("Üsküdar","İstanbul");
	            belediyeler.put("Fatih", "İstanbul");
	            
				// generic HashMap tanimliyoruz
	            HashMap<Integer, String> nufus = new HashMap<>();
				
	                     // key		value
				nufus.put(525395,	"Üsküdar");
				nufus.put(485233,	"Kadıköy");
				nufus.put(1789358,	"Beşiktaş");
				nufus.put(16372,	"Adalar");
				nufus.put(382990,	"Fatih");
				
				nufus.put(591895,	"Kepez");
				nufus.put(521183,	"Muratpaşa");
				nufus.put(350636,	"Alanya");
				nufus.put(134953,	"Serik");
				nufus.put(46615,	"Kemer");
	            
				nufus.put(127534,	"Kahta");
				nufus.put(16416,	"Gerger");
				nufus.put(15294,	"Çelikhan");
				nufus.put(50150,	"Gölbaşı");
				nufus.put(77207,	"Besni");
				
	            String deger = "";
	            
	            for(Entry giris: belediyeler.entrySet()) {
	            	if(giris.getValue().equals(sehir)) {
	            		
	            			String ilce = (String) giris.getKey();
	            		
	            		for(Entry nufusGiris: nufus.entrySet()) {
	            			if(nufusGiris.getValue().equals(ilce)) {
	            				
	    	            		deger = deger + giris.getValue() + "   -->\t" + ilce + "\n\t( " + nufusGiris.getKey() + " )\n";
	            				
	            			}
	            			
	            		}
	            		
	            	}	            	
	            }
	          
		     	texta.setText(deger);
		     	
			}
		});
		
		anapanel.add(sehirSecBaslik);
		anapanel.add(sehirler);
		anapanel.add(belediyelerBaslik);
		anapanel.add(texta);
		
		frame.add(anapanel);
		
		frame.setSize(400,440);
		frame.setLocationRelativeTo(null);
		frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		frame.setResizable(false);
		frame.setVisible(true);
	}

}
