Advertisement
Guest User

Untitled

a guest
Feb 25th, 2020
77
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.42 KB | None | 0 0
  1. package sudoku;
  2. import java.awt.Color;
  3. import java.awt.Container;
  4. import java.awt.FlowLayout;
  5. import java.awt.GridLayout;
  6. import javax.swing.*;
  7.  
  8.  
  9. public class SudokuSwing {
  10. private static JTextField jt [][]= new JTextField[9][9];
  11.  
  12. //tror inte vi vill stoppa in en solver egentligen? tror vi vill stoppa in en matris och sen göra ett nytt
  13. //solver-objekt som jobbar med matrisen på något sätt
  14. public SudokuSwing(Solver s) {
  15. SwingUtilities.invokeLater(() -> createWindow(s, "Sudoku Solver",800,800));
  16. }
  17.  
  18. /*static JTextField getJt(int r, int c) {
  19. //JTextField jt2[][] = new JTextField[9][9];
  20.  
  21. return jt[r][c];
  22. }*/
  23.  
  24. public static int getJt(int r, int c) {
  25. return Integer.parseInt(jt[r][c].getText());
  26. }
  27.  
  28. private void createWindow(Solver s, String title, int width, int height) {
  29. JFrame jf = new JFrame(title);
  30. Container pane = jf.getContentPane();
  31. JPanel jp1 = new JPanel();
  32. pane.add(jp1);
  33. JPanel jp2 = new JPanel();
  34. JPanel jp3 = new JPanel();
  35. JButton slv = new JButton("Solve");
  36. JButton clr = new JButton("Clear");
  37. GridLayout gl = new GridLayout(9,9);
  38. jp1.setLayout(gl);
  39.  
  40. /** Calls solve and retrieves the new values from the matrix in solver */
  41. slv.addActionListener(event ->{
  42. s.loadJt();
  43. s.solve(); //borde vara såhär men kanske inte fullständig kod, kan finnas något mer vi måste lägga till
  44. for (int r=0;r<9;r++) {
  45. for (int c=0;c<9;c++) {
  46. jt[r][c].setText(""+s.getValue(r, c));
  47. }
  48. }
  49. jp1.repaint();
  50. });
  51.  
  52. //Sätter alla värden i matrisen till 0 och repaint på jpanel1
  53. clr.addActionListener(event ->{
  54. for (int r=0;r<9;r++) {
  55. for (int c=0;c<9;c++) {
  56. s.setValue(r, c, 0);
  57. jt[r][c].setText(null);
  58. jp1.repaint();
  59. }
  60. }
  61.  
  62. });
  63.  
  64. for (int r=0;r<9;r++) {
  65. for (int c=0;c<9;c++) {
  66. jt[r][c]=new JTextField (" "); //tog bort +s.getvalue(r,c)
  67. jp1.add(jt[r][c]);
  68. if ((r<3 && c<3) || (r<3&&c>5) || (r>5&&c<3) || (r>5&&c>5) || ((r>2 &&r<6) && (c>2 && c<6))) {
  69. jt[r][c].setBackground(Color.ORANGE);
  70. }
  71. }
  72. }
  73. //För att få knapparna bredvid varandra
  74. jp2.setLayout(new FlowLayout());
  75. jp2.add(slv);
  76. jp2.add(clr);
  77.  
  78. //För att få allt på samma vertikala axel, dvs solve och clear där nere
  79. jp3.setLayout(new BoxLayout(jp3, BoxLayout.PAGE_AXIS));
  80. jp3.add(jp1);
  81. jp3.add(jp2);
  82.  
  83. jf.add(jp3);
  84. jf.pack();
  85. jf.setVisible(true);
  86. }
  87. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement