Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- 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<ArrayList<JTextField>> game_board = m.generateIndividualBoards();
- m.draw_gui(game_board);
- }
- private ArrayList<ArrayList<JTextField>> generateIndividualBoards()
- {
- ArrayList<ArrayList<JTextField>> game_board = new ArrayList<>();
- for(int i = 0; i < 9; i++)
- {
- game_board.add(new ArrayList<>());
- for(int j = 0; j < 9; j++)
- {
- game_board.get(i).add(new JTextField("" + (j + 1), 4));
- }
- }
- for(ArrayList<JTextField> individual_board : game_board)
- {
- Collections.shuffle(individual_board);
- }
- return game_board;
- }
- private void draw_gui(ArrayList<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(ArrayList<JTextField> individual_board : game_board)
- {
- for(JTextField game_tile : individual_board) {
- int index = individual_board.indexOf(game_tile);
- String current_tile = game_tile.getText();
- if(index > 9) {
- int index_check = index - 9;
- String check_tile = individual_board.get(index_check).getText();
- boolean used = false;
- while(index_check > 0) {
- if(current_tile.equals(check_tile))
- {
- used = true;
- }
- index_check -= 9;
- }
- if(!used)
- {
- panel.add(game_tile);
- game_tile.setPreferredSize(new Dimension(150, 50));
- game_tile.setHorizontalAlignment(JTextField.CENTER);
- } else {
- Collections.shuffle(individual_board);
- }
- } 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);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement