Sudoku

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;

public class sudoku implements ActionListener{
    JTextField jtf[];
    JLabel jlb;
    public sudoku()
    {
        JFrame jfrm=new JFrame();
        jfrm.setLayout(new GridLayout(10,1));
        jfrm.setSize(400,400);
        jfrm.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
      
        jtf=new JTextField[81];
        for(int i=0; i<9; i++)
        {
            JPanel jpn=new JPanel();
          
            for(int j=0; j<9; j++)
            {
                jtf[j+i*9]=new JTextField(3);
                jpn.add(jtf[j+i*9]);
                jfrm.add(jpn);
            }
        }
        JPanel jpn=new JPanel();  
      
        JButton jbt=new JButton("Kontrol");
        jbt.addActionListener(this);
        jpn.add(jbt);
      
        jlb=new JLabel("Durum");
        JPanel jpn2=new JPanel();
        jpn.add(jlb);
        jfrm.add(jpn);
      
        jfrm.setVisible(true);
    }
    public void actionPerformed(ActionEvent ae)
    {
        int a=0;
        for(int i=0; i<81; i++)
        {  
            int b=i%9;
            if(i%9==0 && i/9!=0)
            {
                a+=9;
            }  
            for(int j=0; j<9; j++)
            {  
                if(jtf[i].getText().equals(jtf[a+j].getText()) && i!=(a+j))
                {
                    jlb.setText("Hatalı Satır");    //Satır kontrolü
                    return;
                }

                if(jtf[i].getText().equals(jtf[b+9*j].getText()) && i!=(b+9*j))
                {
                    jlb.setText("Hatalı Sütun");    //Sütün kontrolü
                    return;
                }
            }
          
            if(Integer.parseInt(jtf[i].getText())>9) { jlb.setText("Hata:9'dan büyük sayı"); } //Sayı kontrolü
        }
      
        int[] dizi=new int[10];
        for(int satirBuyuk=0; satirBuyuk<3; satirBuyuk++){
            for(int sutunBuyuk=0; sutunBuyuk<3; sutunBuyuk++){
                for(int i=0; i<10; i++){
                    dizi[i] = 0;         //dizi sıfırla
                }
                for(int satirKucuk=0; satirKucuk<3; satirKucuk++){
                    for(int sutunKucuk=0; sutunKucuk<3; sutunKucuk++){
              
                        int index = Integer.parseInt(jtf[satirBuyuk*27 + sutunBuyuk*3 + satirKucuk*9 + sutunKucuk*1].getText());
                        dizi[index]++;
                        if(dizi[index]>1){                          
                            jlb.setText("Hatalı Kutu");  //Kutu kontrolü
                            return;
                        }
                    }
                }
            }
        }
      
        jlb.setText("Doğru Çözüm");
    }
    public static void main(String[] args)
    {
        new sudoku();
    }
}

Yorumlar