mikhail_dvorkin icon

Untitled

mikhail_dvorkin | PRO | 02/18/17 10:05:34 AM UTC | 0 ⭐ | 777 👁️ | Never ⏰ | []
Java |

1.3 KB

|

None

|

0 👍

/

0 👎

import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
 
import javax.swing.*;
 
@SuppressWarnings("serial")
public class GameGUIView extends JPanel implements ActionListener {
    GameModel model;
    GameController controller;
    int height, width;
    JCheckBox[][] checkBoxes;
    
    public GameGUIView(GameModel model, GameController controller) {
        this.model = model;
        this.controller = controller;
        boolean[][] field = model.getField();
        height = field.length;
        width = field[0].length;
        this.setLayout(new GridLayout(height, width));
        checkBoxes = new JCheckBox[height][width];
        for (int i = 0; i < height; i++) {
            for (int j = 0; j < width; j++) {
                checkBoxes[i][j] = new JCheckBox();
                this.add(checkBoxes[i][j]);
                checkBoxes[i][j].addActionListener(this);
            }
        }
        redraw();
    }
    
    public void redraw() {
        boolean[][] field = model.getField();
        for (int i = 0; i < height; i++) {
            for (int j = 0; j < width; j++) {
                checkBoxes[i][j].setSelected(field[i][j]);
            }
        }
    }
 
    @Override
    public void actionPerformed(ActionEvent e) {
        for (int i = 0; i < height; i++) {
            for (int j = 0; j < width; j++) {
                if (e.getSource() == checkBoxes[i][j]) {
                    controller.receiveAction(i, j);
                }
            }
        }
        redraw();
    }
}

Comments