| | |
Sudoku help
Please support our Java advertiser: Programming Forums - DaniWeb Sister Site
Thread Solved |
•
•
Join Date: Sep 2009
Posts: 5
Reputation:
Solved Threads: 0
I m doing Program for sudoku. The blank grid displayed but how to pass random integer values to that grid. here is my code:
java Syntax (Toggle Plain Text)
import javax.swing.BorderFactory; import javax.swing.JComponent; import javax.swing.JFrame; import javax.swing.JPanel; import java.awt.*; import javax.swing.JFormattedTextField; import javax.swing.text.DefaultFormatterFactory; import javax.swing.text.NumberFormatter; @SuppressWarnings("empty-statement") public class Board { private static final Dimension FIELD_SIZE = new Dimension(60, 60); private static final int EMPTY = 0; private JPanel grid = new JPanel(); private JPanel[][] subgrid = new JPanel[3][3]; private JFormattedTextField[][] cell = new JFormattedTextField[9][9]; private static int num=0,col=9,row=9; private int Value=0; private String strValue; private int GridBoard[][] = {{0, 6, 0, 1, 0, 4, 0, 5, 0}, {0, 0, 8, 3, 0, 5, 6, 0, 0}, {2, 0, 0, 0, 0, 0, 0, 0, 1}, {0, 0, 6, 0, 0, 0, 3, 0, 0}, {7, 0, 0, 9, 0, 1, 0, 0, 4}, {5, 0, 0, 0, 0, 0, 0, 0, 2}, {0, 0, 7, 2, 0, 6, 9, 0, 0}, {0, 4, 0, 5, 0, 8, 0, 7, 0}}; int GridArray[][] = null; public Board() { grid.setBorder(BorderFactory.createLineBorder(Color.black, 3)); grid.setLayout(new GridLayout(3, 3)); for (int i = 0; i < subgrid.length; i++) { for (int j = 0; j < subgrid[i].length; j++) { subgrid[i][j] = new JPanel(new GridLayout(3, 3)); subgrid[i][j].setBorder(BorderFactory.createLineBorder(Color.black, 1)); grid.add(subgrid[i][j]); } } for (int i = 0; i < cell.length; i++) { for (int j = 0; j < cell[i].length; j++) { cell[i][j] = new JFormattedTextField(new DefaultFormatterFactory(new NumberFormatter())); cell[i][j].setValue(new Integer(Value)); cell[i][j].setPreferredSize(FIELD_SIZE); cell[i][j].setFont( new Font("sans-serif", Font.BOLD, 20)); cell[i][j].setHorizontalAlignment(JFormattedTextField.CENTER); subgrid[i/3][j/3].add(cell[i][j]); } } } Board(int[][] result) { this.grid =grid; } public JComponent getPanel() //return type of getPanel() is JComponent { return grid; } public void setCellValue(int num, int row, int col) { num=0; for (int r = 1;r<=9 ;r++ ) { for (int c = 1;c<=9 ; c++) { cell[r][c] = new JFormattedTextField(); strValue=GridBoard.toString().replace("0", " "); String text = (num == EMPTY) ? " " : String.valueOf(num); cell [r][c].setText(text); } } } public int getCellValue(int row, int col) { int cellval=0; try { for (int r = 0;r<cell.length ;r++ ) { for (int c = 0;c<cell[r].length ; c++) { cellval = Integer.parseInt(cell[r][c].getText()); } } } catch (NumberFormatException e) { cellval = EMPTY; } return cellval; } public void clearBoard() { for (int r = 0; r < 9 ; r++ ) { for (int c = 0; c < 9 ; c++) { cell[r][c] = new JFormattedTextField(); } } } public static boolean isValid(boolean[] choices){ for (int i = 1; i <= 9; i++) { if (choices[i]) return true; } return false; } protected boolean checkRow( int num ) { // loop through row and check values for (int i = 0; i < cell[row-1].length; i++) { if(num == Integer.parseInt(cell[row-1][i].getText())); { return true; } } return false; } protected boolean checkCol( int num ) { // loop through row and check values for (int i = 0; i < cell[col-1].length; i++) { if(num == Integer.parseInt(cell[col-1][i].getText())) { return true; } } return false; } protected boolean inBox(int number) { for(int i = 0; i < subgrid.length; i++) { for(int j = 0 ; j < subgrid[i].length; j++) { if(number == Integer.parseInt(cell[i][j].getText())) return true; } } return false; } private static void createAndShowGUI() { JFrame frame = new JFrame("Sudoku"); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.getContentPane().add(new Board().getPanel()); frame.pack(); frame.setLocationRelativeTo(null); frame.setVisible(true); } public static void main(String[] args) { Board board= new Board(); javax.swing.SwingUtilities.invokeLater(new Runnable() { public void run() { createAndShowGUI(); } }); } }
Last edited by Ezzaral; Sep 2nd, 2009 at 3:27 pm. Reason: Added [code] [/code] tags. Please use them to format any code that you post.
![]() |
Similar Threads
- Sudoku Source Code (C++)
- Sudoku Source Code. (C#)
- Please help! Sudoku in C (C)
Other Threads in the Java Forum
- Previous Thread: Button Are Not In Same Size
- Next Thread: weird output ?
| Thread Tools | Search this Thread |
Tag cloud for Java
affinetransform android api append apple applet application arguments array arrays automation bi binary bluetooth businessintelligence busy_handler(null) chat class classes client code component database draw eclipse encryption equation error event exception file fractal game givemetehcodez graphics gui helpwithhomework html ide image input integer intersect j2me java javaexcel javaprojects jmf jni jpanel julia linked linux list loop main map method methods mobile netbeans newbie number open-source oracle oriented panel print problem program programming project qt recursion reference replaysolutions repositories return robot scanner screen scrollbar se server set singleton size sms socket sort sql string swing test threads time tree utility windows xor





