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 game_board = m.generateIndividualBoards(); m.draw_gui(game_board); } private ArrayList generateIndividualBoards() { ArrayList 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 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); } }