📄 SayilardanCerceveDeseni.java .java dosyası

⬇️ İndir
import java.awt.Color; import java.util.Scanner; import javax.swing.*; public class SayilardanCerceveDeseni { public static int[][] desen; public static int n = 5; public static int cerceve = (n+1)/2; public static int sabit = cerceve-2; // n=17 -> cerceve = 9 -> sabit = 7 // n=15 -> cerceve = 8 -> sabit = 6 // n=13 -> cerceve = 7 -> sabit = 5 // n=11 -> cerceve = 6 -> sabit = 4 // n=9 -> cerceve = 5 -> sabit = 3 // n=7 -> cerceve = 4 -> sabit = 2 // n=5 -> cerceve = 3 -> sabit = 1 // n=3 -> cerceve = 2 -> sabit = 0 public SayilardanCerceveDeseni() { System.out.print("2 - 18 arasinda bir tek sayi giriniz : " ); Scanner klavye = new Scanner(System.in); n = klavye.nextInt(); if ((n%2 == 0) || (n<3 || n>17)) { System.out.println("Uygun sart saglanmadi"); System.err.println("Program sonlandirildi..."); System.exit(0); } cerceve = (n+1)/2; sabit = cerceve-2; desen = new int[n][n]; klavye.close(); System.out.println(); for (int i=cerceve ; i>=1 ; i--) { cerceveOlustur(i); } // By for döngüsü CONSOLE çiktisi veriyor. for(int i = 0; i<n; i++) { for(int j = 0; j<n; j++) { System.out.print(desen[i][j]); } System.out.println(); } // JFrame içinde renkli panellerin gösterildigi metodu cagiriyoruz. frameGoster(); } public static void cerceveOlustur(int kare) { for (int i=cerceve-kare ; i<=kare+sabit ; i++) { for (int j=cerceve-kare ; j<=kare+sabit ; j++) { desen[i][j] = kare; } } } public static JFrame frameGoster() { JFrame frame = new JFrame("067 Sayilardan Cerceve Deseni JFrame çözümü"); frame.setLayout(null); Color background = new Color(0,0,0); Color[] renk = new Color[9]; renk[0] = new Color(126, 203, 247); // mavi renk[1] = new Color(254, 217, 0); // sari renk[2] = new Color(118, 222, 142); // yesil renk[3] = new Color(242, 183, 5); // tuuncu renk[4] = new Color(209, 132, 213); // lila renk[5] = new Color(167, 189, 204); // fume renk[6] = new Color(153, 23, 59); // bordo renk[7] = new Color(11, 219, 247); //CamGobegi renk[8] = new Color(183, 174, 242); // mor JPanel[][] panel = new JPanel[n][n]; JLabel labelSayi= new JLabel(); int baslangicNoktasi = 20; int fark = 51; int olcu = fark-3; int x = baslangicNoktasi; int y = baslangicNoktasi; int genislik = olcu; int yukseklik = olcu; for(int i = 0; i<n; i++) { for(int j = 0; j<n; j++) { panel[i][j] = new JPanel(); // cok zor cozeceginiz bir null hatasi alirsiniz... panel[i][j].setLayout(null); switch (desen[i][j]) { // case 0 : background = renk[0]; break; case 1 : background = renk[1]; break; case 2 : background = renk[2]; break; case 3 : background = renk[3]; break; case 4 : background = renk[4]; break; case 5 : background = renk[5]; break; case 6 : background = renk[6]; break; case 7 : background = renk[7]; break; case 8 : background = renk[8]; break; case 9 : background = renk[0]; break; } panel[i][j].setBackground(background); panel[i][j].setBounds((x + (j*fark)),y,genislik,yukseklik); labelSayi = new JLabel(""+desen[i][j]); labelSayi.setBounds(0, 0, genislik,yukseklik); labelSayi.setHorizontalAlignment(JLabel.CENTER); panel[i][j].add(labelSayi); frame.add(panel[i][j]); } x = baslangicNoktasi; y = y + fark; } frame.setSize(900, 930); frame.setLocationRelativeTo(null); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.setResizable(false); frame.setVisible(true); return frame; } }