Moortiii icon

Sudoku Board Generator - FullArray

Moortiii | PRO | 01/16/18 12:54:09 PM UTC | 0 ⭐ | 332 👁️ | Never ⏰ | []
text |

2.65 KB

|

None

|

0 👍

/

0 👎

package com.company;
 import javax.swing.*;
import java.awt.*;
import java.util.ArrayList;
import java.util.Collections;
 public class Main {
    public static void main(String[] args) {
        Main m = new Main();
        ArrayList<JTextField> game_board = m.generateIndividualBoards();
        m.draw_gui(game_board);
    }
     private ArrayList<JTextField> generateIndividualBoards()
    {
        ArrayList<JTextField> game_board = new ArrayList<>();
         for(int i = 0; i < 9; i++)
        {
            for(int j = 0; j < 9; j++)
            {
                game_board.add(new JTextField("" + (j + 1), 4));
            }
        }
        return game_board;
    }
     private void draw_gui(ArrayList<JTextField> game_board) {
        JFrame frame = new JFrame("Sudoku Board");
        JPanel panel = new JPanel();
        JMenuBar menu_bar = new JMenuBar();
        JMenu file_menu = new JMenu("File");
        JMenuItem new_game = new JMenuItem("New Game");
        JMenuItem delete_game = new JMenuItem("Delete Game");
        JMenuItem exit = new JMenuItem("Exit");
         for(JTextField game_tile : game_board)
        {
            int index = game_board.indexOf(game_tile);
            String current_tile = game_tile.getText();
            if(index > 9) {
                int index_check = index - 9;
                String check_tile = game_board.get(index_check).getText();
                boolean used = false;
                while(index_check > 0) {
                    if(current_tile.equals(check_tile))
                    {
                        used = true;
                        break;
                    }
                    index_check -= 9;
                }
                if(!used)
                {
                    panel.add(game_tile);
                    game_tile.setPreferredSize(new Dimension(150, 50));
                    game_tile.setHorizontalAlignment(JTextField.CENTER);
                } else {
                    System.out.println("Ran into an error");
                }
            } else {
                panel.add(game_tile);
                game_tile.setPreferredSize(new Dimension(150, 50));
                game_tile.setHorizontalAlignment(JTextField.CENTER);
            }
        }
         frame.setJMenuBar(menu_bar);
         menu_bar.add(file_menu);
        file_menu.add(new_game);
        file_menu.add(delete_game);
        file_menu.add(exit);
         panel.setLayout(new GridLayout(9, 9));
        frame.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
        frame.add(panel);
        frame.pack();
        frame.setVisible(true);
    }
}

Comments