Styling and slight refactor

This commit is contained in:
Imbus 2023-12-12 23:50:55 +01:00
parent 6ae83248ef
commit 970aabd532

View file

@ -1,6 +1,8 @@
package gui; package gui;
import javax.swing.*; import javax.swing.*;
import javax.swing.border.Border;
import java.awt.*; import java.awt.*;
import java.awt.event.*; import java.awt.event.*;
@ -31,36 +33,43 @@ public class SudokuView extends JFrame {
initializeGrid(); initializeGrid();
initializeButtons(); initializeButtons();
pack(); setMinimumSize(new Dimension(500, 500));
setLocationRelativeTo(null); pack(); // Resize the window to fit the components, if necessary
setLocationRelativeTo(null); // Center the window
} }
/** Initialize the grid, called by the constructor */ /** Initialize the grid, called by the constructor */
private void initializeGrid() { private void initializeGrid() {
grid = new JTextField[9][9]; grid = new JTextField[9][9];
JPanel gridPanel = new JPanel(new GridLayout(9, 9)); JPanel gridPanel = new JPanel(new GridLayout(9, 9));
gridPanel.setBorder(BorderFactory.createEmptyBorder(5, 5, 5, 5));
int fontSize = 16;
String fontName = gridPanel.getFont().getName();
Border border = BorderFactory.createLineBorder(Color.BLACK);
Font font = new Font(fontName, Font.BOLD, fontSize);
for (int row = 0; row < 9; row++) { for (int row = 0; row < 9; row++) {
for (int col = 0; col < 9; col++) { for (int col = 0; col < 9; col++) {
grid[row][col] = new JTextField(2); JTextField cell = new JTextField(2);
grid[row][col].setHorizontalAlignment(JTextField.CENTER); cell.setHorizontalAlignment(JTextField.CENTER);
cell.setFont(font);
cell.setBorder(border);
cell.setForeground(Color.BLACK);
// Set background color to gray for every third JTextField // Set background color to gray for every third JTextField
if ((row / 3 + col / 3) % 2 == 1) { if ((row / 3 + col / 3) % 2 == 1) {
grid[row][col].setBackground(Color.LIGHT_GRAY); cell.setBackground(Color.LIGHT_GRAY);
} }
Font boldFont = new Font(grid[row][col].getFont().getName(), Font.BOLD, grid[row][col].getFont().getSize()); grid[row][col] = cell;
grid[row][col].setFont(boldFont); gridPanel.add(cell);
grid[row][col].setForeground(Color.BLACK);
gridPanel.add(grid[row][col]);
} }
} }
add(gridPanel, BorderLayout.CENTER); add(gridPanel, BorderLayout.CENTER);
} }
/** Initialize the buttons, called by the constructor */ /** Initialize the buttons, called by the constructor */
private void initializeButtons() { private void initializeButtons() {
solveButton = new JButton("Solve"); solveButton = new JButton("Solve");