fubarable

ButtonTest

Feb 9th, 2018
196
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 5.26 KB | None | 0 0
  1. import java.awt.BorderLayout;
  2. import java.awt.Color;
  3. import java.awt.Component;
  4. import java.awt.Dimension;
  5. import java.awt.GridLayout;
  6. import java.awt.event.ActionEvent;
  7. import java.awt.event.MouseAdapter;
  8. import java.awt.event.MouseEvent;
  9. import java.awt.event.MouseListener;
  10. import java.util.ArrayList;
  11. import java.util.Collections;
  12.  
  13. import javax.swing.*;
  14.  
  15. @SuppressWarnings("serial")
  16. public class ButtonTest extends JPanel {
  17.     private JPanel jpanel = new JPanel();
  18.     private ArrayList<Integer> arl_field;
  19.     private JButton[][] arr_btnField;
  20.     private int int_dim = 10;
  21.     private int[][] arr_solution;
  22.     private int int_mines = 5;
  23.     @SuppressWarnings("unused")
  24.     private Color[] clr_palette;
  25.     private MouseListener listener = new MouseAdapter() {
  26.         public void mouseClicked(MouseEvent e) {
  27.             Component comp = (Component) e.getSource();
  28.             comp.setBackground(null);
  29.         };
  30.     };
  31.     @SuppressWarnings("unused")
  32.     private boolean bool_firstround;
  33.  
  34.     public ButtonTest() {
  35.         JPanel resetPanel = new JPanel();
  36.         resetPanel.add(new JButton(new AbstractAction("Reset") {
  37.  
  38.             @Override
  39.             public void actionPerformed(ActionEvent e) {
  40.                 resetGame();
  41.             }
  42.         }));
  43.  
  44.         setPreferredSize(new Dimension(800, 650));
  45.         setLayout(new BorderLayout());
  46.         add(jpanel);
  47.         add(resetPanel, BorderLayout.PAGE_END);
  48.         resetGame();
  49.     }
  50.  
  51.     public void resetGame() {
  52.         jpanel.removeAll();
  53.         // !! arl_field.clear();
  54.  
  55.         arr_btnField = new JButton[int_dim][int_dim];
  56.         arr_solution = new int[int_dim][int_dim];
  57.         // arr_zeroGroup = new int[int_dim][int_dim];
  58.         // bool_change = false;
  59.         // bool_won = false;
  60.         arl_field = new ArrayList<Integer>();
  61.  
  62.         int mines = int_mines;
  63.         for (int i = 0; i < arr_btnField.length * arr_btnField.length; i++) {
  64.             if (mines > 0) {
  65.                 arl_field.add(9);
  66.                 mines--;
  67.             } else
  68.                 arl_field.add(0);
  69.         }
  70.  
  71.         Collections.shuffle(arl_field);
  72.  
  73.         for (int i = 0; i < arl_field.size(); i++) {
  74.             if (arl_field.get(i) != 9) {
  75.                 for (int j = 0; j < arl_field.size(); j++) {
  76.                     if (arl_field.get(j) == 9 && (((i - j == int_dim + 1 && i % int_dim != 0)
  77.                             || (i - j == int_dim - 1 && i % int_dim != int_dim - 1)
  78.                             || (j - i == int_dim - 1 && i % int_dim != 0)
  79.                             || (j - i == int_dim + 1 && i % int_dim != int_dim - 1)
  80.                             || (Math.abs(i - j) == int_dim))
  81.                             || ((i - j == 1 && i % int_dim != 0)
  82.                                     || (i - j == -1 && i % int_dim != int_dim - 1)))) {
  83.                         arl_field.set(i, arl_field.get(i) + 1);
  84.                         System.out.println(
  85.                                 "Value Changed " + i + " " + j + " " + i % int_dim + " " + (i - j));
  86.                     }
  87.                 }
  88.             }
  89.         }
  90.  
  91.         for (int i = 0; i < arr_solution.length; i++) {
  92.             for (int j = 0; j < arr_solution[i].length; j++) {
  93.                 arr_solution[i][j] = arl_field.get(i * int_dim + j);
  94.             }
  95.         }
  96.  
  97.         jpanel.setLayout(new GridLayout(0, int_dim));// if(bool_firstround==false)jpanel.setLayout(new
  98.                                                      // GridLayout(0,int_dim));
  99.  
  100.         for (int i = 0; i < arr_btnField.length; i++) {
  101.             for (int j = 0; j < arr_btnField[i].length; j++) {
  102.                 arr_btnField[i][j] = new JButton();//// if(bool_firstround==false)arr_btnField[i][j]
  103.                                                    //// = new
  104.                                                    //// JButton();//arl_field.get(i*int_dim+j)+"");
  105.                 // !! arr_btnField[i][j].setBorder(border);
  106.                 arr_btnField[i][j].setText("");
  107.                 // !! arr_btnField[i][j].setFont(y);
  108.                 arr_btnField[i][j].setBackground(new Color(0X00, 0X94, 0XFF));
  109.                 // !! if (arl_field.get(i * int_dim + j) != 9)
  110.                 // arr_btnField[i][j].setForeground(clr_palette[arl_field.get(i
  111.                 // * int_dim + j)]);
  112.                 // else
  113.                 // arr_btnField[i][j].setForeground(Color.black);
  114.                 arr_btnField[i][j].addMouseListener(listener);
  115.                 arr_btnField[i][j].setFocusable(false);
  116.                 jpanel.add(arr_btnField[i][j]);
  117.             }
  118.         }
  119.  
  120.         bool_firstround = true;
  121.         scanZeros();
  122.  
  123.         jpanel.revalidate();
  124.         jpanel.repaint();
  125.     }
  126.  
  127.     private void scanZeros() {
  128.         // TODO flesh out this method
  129.     }
  130.  
  131.     private static void createAndShowGui() {
  132.         ButtonTest mainPanel = new ButtonTest();
  133.  
  134.         JFrame frame = new JFrame("ButtonTest");
  135.         frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  136.         frame.getContentPane().add(mainPanel);
  137.         frame.pack();
  138.         frame.setLocationRelativeTo(null);
  139.         frame.setVisible(true);
  140.     }
  141.  
  142.     public static void main(String[] args) {
  143.         SwingUtilities.invokeLater(() -> createAndShowGui());
  144.     }
  145. }
Add Comment
Please, Sign In to add comment