Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package sudoku;
- import java.awt.Color;
- import java.awt.Container;
- import java.awt.FlowLayout;
- import java.awt.GridLayout;
- import javax.swing.*;
- public class SudokuSwing {
- private static JTextField jt [][]= new JTextField[9][9];
- //tror inte vi vill stoppa in en solver egentligen? tror vi vill stoppa in en matris och sen göra ett nytt
- //solver-objekt som jobbar med matrisen på något sätt
- public SudokuSwing(Solver s) {
- SwingUtilities.invokeLater(() -> createWindow(s, "Sudoku Solver",800,800));
- }
- /*static JTextField getJt(int r, int c) {
- //JTextField jt2[][] = new JTextField[9][9];
- return jt[r][c];
- }*/
- public static int getJt(int r, int c) {
- return Integer.parseInt(jt[r][c].getText());
- }
- private void createWindow(Solver s, String title, int width, int height) {
- JFrame jf = new JFrame(title);
- Container pane = jf.getContentPane();
- JPanel jp1 = new JPanel();
- pane.add(jp1);
- JPanel jp2 = new JPanel();
- JPanel jp3 = new JPanel();
- JButton slv = new JButton("Solve");
- JButton clr = new JButton("Clear");
- GridLayout gl = new GridLayout(9,9);
- jp1.setLayout(gl);
- /** Calls solve and retrieves the new values from the matrix in solver */
- slv.addActionListener(event ->{
- s.loadJt();
- s.solve(); //borde vara såhär men kanske inte fullständig kod, kan finnas något mer vi måste lägga till
- for (int r=0;r<9;r++) {
- for (int c=0;c<9;c++) {
- jt[r][c].setText(""+s.getValue(r, c));
- }
- }
- jp1.repaint();
- });
- //Sätter alla värden i matrisen till 0 och repaint på jpanel1
- clr.addActionListener(event ->{
- for (int r=0;r<9;r++) {
- for (int c=0;c<9;c++) {
- s.setValue(r, c, 0);
- jt[r][c].setText(null);
- jp1.repaint();
- }
- }
- });
- for (int r=0;r<9;r++) {
- for (int c=0;c<9;c++) {
- jt[r][c]=new JTextField (" "); //tog bort +s.getvalue(r,c)
- jp1.add(jt[r][c]);
- 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))) {
- jt[r][c].setBackground(Color.ORANGE);
- }
- }
- }
- //För att få knapparna bredvid varandra
- jp2.setLayout(new FlowLayout());
- jp2.add(slv);
- jp2.add(clr);
- //För att få allt på samma vertikala axel, dvs solve och clear där nere
- jp3.setLayout(new BoxLayout(jp3, BoxLayout.PAGE_AXIS));
- jp3.add(jp1);
- jp3.add(jp2);
- jf.add(jp3);
- jf.pack();
- jf.setVisible(true);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement