141 lines
3.4 KiB
Java
141 lines
3.4 KiB
Java
|
/**
|
||
|
* La classe <code>Block</code> est utilisée pour créer les blocs
|
||
|
*
|
||
|
* @version 0.1
|
||
|
* @author Adil HAMMERSCHMIDT & Lucas GRANDJEAN
|
||
|
*/
|
||
|
|
||
|
import java.awt.*;
|
||
|
import javax.swing.*;
|
||
|
|
||
|
|
||
|
public class Block extends JPanel {
|
||
|
private int column;
|
||
|
private int line;
|
||
|
private char color;
|
||
|
private int status;
|
||
|
|
||
|
/**
|
||
|
* Constructeur uniquement destiné à la création des variables publiques.
|
||
|
*
|
||
|
* @param blockColumn le numéro de la colonne où se trouve le bloc
|
||
|
* @param blockLine le numéro de la ligne où se trouve le bloc
|
||
|
* @param blockColor la couleur du bloc
|
||
|
*/
|
||
|
public Block(int blockColumn, int blockLine, char blockColor) {
|
||
|
super();
|
||
|
this.column = blockColumn;
|
||
|
this.line = blockLine;
|
||
|
this.color = blockColor;
|
||
|
this.status = 1;
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* Renvoie le numéro de colonne du bloc
|
||
|
*
|
||
|
* @return Renvoie le numéro de colonne du bloc (de 0 à 14)
|
||
|
*/
|
||
|
public int getColumn() {
|
||
|
return this.column;
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* Renvoie le numéro de ligne du bloc
|
||
|
*
|
||
|
* @return Renvoie le numéro de ligne du bloc (de 0 à 9)
|
||
|
*/
|
||
|
public int getLine() {
|
||
|
return this.line;
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* Renvoie la couleur du bloc
|
||
|
*
|
||
|
* @return Renvoie la couleur du bloc ('R', 'V' ou 'B')
|
||
|
*/
|
||
|
public char getColor() {
|
||
|
return this.color;
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* Renvoie le status
|
||
|
*
|
||
|
* @return Renvoie le status du bloc (1 ou 0)
|
||
|
*/
|
||
|
public int getStatus() {
|
||
|
return this.status;
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* Modifie le numéro de colonne du bloc
|
||
|
*
|
||
|
* @param blockColumn le numéro de la colonne que l'on souhaite affecter au bloc (de 0 à 14)
|
||
|
*/
|
||
|
public void setColumn(int blockColumn) {
|
||
|
this.column = blockColumn;
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* Modifie le numéro de ligne du bloc
|
||
|
*
|
||
|
* @param blockLine le numéro de la ligne que l'on souhaite affecter au bloc (de 0 à 9)
|
||
|
*/
|
||
|
public void setLine(int blockLine) {
|
||
|
this.line = blockLine;
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* Modifie la couleur du bloc
|
||
|
*
|
||
|
* @param blockColor la couleur que l'on souhaite affecter au bloc ('R', 'V' ou 'B')
|
||
|
*/
|
||
|
public void setColor(char blockColor) {
|
||
|
this.color = blockColor;
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* Modifie le status du bloc
|
||
|
*
|
||
|
* @param blockStatus le status que l'on souhaite affecter au bloc (1 ou 0)
|
||
|
*/
|
||
|
public void setStatus(int blockStatus) {
|
||
|
this.status = blockStatus;
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* Actualise les graphiques du block
|
||
|
*/
|
||
|
@Override
|
||
|
public void paintComponent(Graphics g) {
|
||
|
if (this.isOpaque()) {
|
||
|
g.setColor(this.getBackground());
|
||
|
g.fillRect(0, 0, this.getWidth(), this.getHeight());
|
||
|
}
|
||
|
if(this.status == 1) {
|
||
|
|
||
|
if(this.color == 'R') {
|
||
|
Image img = getToolkit().getImage(this.getClass().getResource("/img/rouge.png"));
|
||
|
g.drawImage(img, 0, 0, this);
|
||
|
}
|
||
|
|
||
|
else if(this.color=='V') {
|
||
|
Image img = getToolkit().getImage(this.getClass().getResource("/img/vert.png"));
|
||
|
|
||
|
g.drawImage(img, 0, 0, this);
|
||
|
}
|
||
|
|
||
|
else if(this.color=='B') {
|
||
|
Image img = getToolkit().getImage(this.getClass().getResource("/img/bleu.png"));
|
||
|
g.drawImage(img, 0, 0, this);
|
||
|
}
|
||
|
}
|
||
|
else {
|
||
|
g.setColor(Color.WHITE);
|
||
|
g.drawOval(0, 0, 50, 50);
|
||
|
g.fillOval(0, 0, 50, 50);
|
||
|
}
|
||
|
}
|
||
|
|
||
|
|
||
|
}
|