📄 RandomCheckBox.java .java dosyası

⬇️ İndir
import java.awt.*; import java.awt.event.*; import java.util.ArrayList; import javax.swing.*; public class RandomCheckBox { public static ArrayList<Integer> soruSayiListesi = new ArrayList<Integer>(); public static JLabel etiketSayilar = new JLabel("0"); public static JCheckBox[] cb = new JCheckBox[25]; public static ArrayList<Integer> RandomSayiUret(int elemanSayisi) { ArrayList<Integer> rastgeleSayiListesi = new ArrayList<Integer>(); for (int i=0 ; i<elemanSayisi ; i++ ) { int x = (int) (Math.random()*25)+1; rastgeleSayiListesi.add(x); // 4 9 12 5 } for (int i=0 ; i<elemanSayisi ; i++) { for (int j=0 ; j<i ; j++) { if (j == i) { } else { if (rastgeleSayiListesi.get(i) == rastgeleSayiListesi.get(j)) { // Ayni olan elemani ArrayList'ten siliyoruz. // Silinen index'e yeni bir sayi ekliyoruz. rastgeleSayiListesi.remove(i); int x = (int) (Math.random()*25)+1; rastgeleSayiListesi.add(i, x); // Yeni eklenen sayinin tekrar kontrol edilmesi için // i'yi bir eksiltip tekrar kontrol ediyoruz. i=i-1; } } } } return rastgeleSayiListesi; } public RandomCheckBox() { JFrame pencere = new JFrame("Rastgele Sayilar Listesi"); pencere.setLayout(null); pencere.add(sayiSec()); pencere.setSize(400, 400); pencere.setLocationRelativeTo(null); pencere.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE); pencere.setVisible(true); } public static JPanel sayiSec() { JPanel panel = new JPanel(); panel.setLayout(null); panel.setBackground(new Color(224, 242, 196)); panel.setBounds(20,20,360,340); JLabel etiket; String[] rastgeleSayiAdedi = new String[23]; rastgeleSayiAdedi[0] = "3 Elemanlı"; rastgeleSayiAdedi[1] = "4 Elemanlı"; rastgeleSayiAdedi[2] = "5 Elemanlı"; rastgeleSayiAdedi[3] = "6 Elemanlı"; rastgeleSayiAdedi[4] = "7 Elemanlı"; rastgeleSayiAdedi[5] = "8 Elemanlı"; rastgeleSayiAdedi[6] = "9 Elemanlı"; rastgeleSayiAdedi[7] = "10 Elemanlı"; rastgeleSayiAdedi[8] = "11 Elemanlı"; rastgeleSayiAdedi[9] = "12 Elemanlı"; rastgeleSayiAdedi[10] = "13 Elemanlı"; rastgeleSayiAdedi[11] = "14 Elemanlı"; rastgeleSayiAdedi[12] = "15 Elemanlı"; rastgeleSayiAdedi[13] = "16 Elemanlı"; rastgeleSayiAdedi[14] = "17 Elemanlı"; rastgeleSayiAdedi[15] = "18 Elemanlı"; rastgeleSayiAdedi[16] = "19 Elemanlı"; rastgeleSayiAdedi[17] = "20 Elemanlı"; rastgeleSayiAdedi[18] = "21 Elemanlı"; rastgeleSayiAdedi[19] = "22 Elemanlı"; rastgeleSayiAdedi[20] = "23 Elemanlı"; rastgeleSayiAdedi[21] = "24 Elemanlı"; rastgeleSayiAdedi[22] = "25 Elemanlı"; int x = 15; int y = 50; int w = 50; int h = 20; int xf = 70; // yataydaki fark int yf = 40; // dikeydeki fark etiketSayilar.setHorizontalAlignment(JLabel.CENTER); etiketSayilar.setVerticalAlignment(JLabel.CENTER); etiketSayilar.setBounds(0,y,360,40); y = y + yf; for (int i=0 ; i<25 ; i++) { cb[i] = new JCheckBox(""+(i+1)); if (!((i == 0)) && i%5 == 0) { x = 15; y = y + yf; } cb[i].setBounds(x,y,w,h); x = x + xf; } JComboBox comboRandom = new JComboBox(rastgeleSayiAdedi); etiket = new JLabel("Rastgele sayi göster : "); etiket.setBounds(10,10,200,25); comboRandom.setBounds(220,10,130,25); comboRandom.addItemListener(new ItemListener() { public void itemStateChanged(ItemEvent event) { // Bütün CheckBox'lari false isaretliyoruz. for (int i=0 ; i<25 ; i++) cb[i].setSelected(false); String data = (String) comboRandom.getItemAt(comboRandom.getSelectedIndex()); int elemanSayisi = (comboRandom.getSelectedIndex())+3; // en az üç elemanli olmasini istiyoruz. soruSayiListesi = RandomSayiUret(elemanSayisi); etiketSayilar.setText(""+soruSayiListesi); // Random seçilen sayilarin CheckBox'larini true isaretliyoruz. for (int i=0 ; i<soruSayiListesi.size() ; i++) { cb[soruSayiListesi.get(i)-1].setSelected(true); } } }); y = y + yf; JButton buton = new JButton("Göster"); buton.setBounds(140,y,100,20); buton.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent event) { System.out.println("Buton'a basiildi :) " + soruSayiListesi); } }); panel.add(etiket); panel.add(comboRandom); panel.add(etiketSayilar); for (int i=0 ; i<25 ; i++) panel.add(cb[i]); panel.add(buton); return panel; } }