Salve. Sto realizzando un generatore di Sudoku. Mi sono impuntato su un problema nella realizzazione della grafica. Questo è il codice del JPanel che mostra il Sudoku:

codice:
public class SudokuPanel extends JPanel {
    
    private static final long serialVersionUID = 1L;
    private Sudoku sudoku;

    public SudokuPanel(Sudoku sudoku) {
        
        this.sudoku = sudoku;
        
        setLayout(new GridLayout(9,9));
        setPreferredSize(new Dimension(600,600));
        setBorder(BorderFactory.createLineBorder(Color.BLACK));
        
        for(int i = 0; i < Sudoku.DIM; i++) {
            for(int j = 0; j < Sudoku.DIM; j++) {
                MaskFormatter formatter = null;
                try {
                    formatter = new MaskFormatter("#");
                } catch (ParseException e) {
                    e.printStackTrace();
                }
                JFormattedTextField formattedTextField = new JFormattedTextField(formatter);
                Font font = new Font("Serif", Font.BOLD, 45);
                formattedTextField.setFont(font);
                formattedTextField.setHorizontalAlignment(JTextField.CENTER);
                add(formattedTextField);
            }
        }
    }
}
I problemi sono 2:

1) Come tutti saprete la griglia del Sudoku è divisa in 9 aree 3 x 3. Vorrei inserire delle linee nere o dei bordi per mostrare questa suddivisione ma non so come fare.

2) Devo evitare l'inserimento dello 0 nelle celle.

Qualsiasi consiglio è ben accetto