PT21_APL2020/Block.java

141 lines
3.4 KiB
Java
Raw Permalink Normal View History

2021-12-06 22:07:53 +01:00
/**
* 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 se trouve le bloc
* @param blockLine le numéro de la ligne 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);
}
}
}