package presentation;
//import solitaire.controle.* ;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import controller.CCarte;
/**
* Composant Pr�sentation d'une carte
*/
public class PCarte extends JPanel {
protected CCarte controle; // contr�leur associ�
protected JLabel face, dos;
protected ImageIcon icone; // image de la face
protected static ImageIcon iconeDos; // image du dos
public static int largeur, hauteur;
/**
* initialiser une carte
*
* @param chaine
* : nom de la carte (exemple "3H" = 3 Heart)
*/
public PCarte(final String chaine, final CCarte controle) {
this.controle = controle;
// image de la face
icone = new ImageIcon(ClassLoader.getSystemResource("images/"
+ chaine + ".gif"));
face = new JLabel(icone);
add(face);
face.setLocation(0, 0);
face.setSize(largeur, hauteur);
// image du dos
dos = new JLabel(iconeDos);
add(dos);
dos.setLocation(0, 0);
dos.setSize(largeur, hauteur);
// le JPanel
setLayout(null);
setBackground(Color.LIGHT_GRAY);
setOpaque(true);
setSize(face.getSize());
setPreferredSize(getSize());
setFaceVisible(false);
} // constructeur
/**
* changer la visibilit� de la carte
*
* @param faceVisible
* : vrai si la face est visible, faux sinon
*/
public void setFaceVisible(boolean faceVisible) {
face.setVisible(faceVisible);
dos.setVisible(!faceVisible);
}
public final CCarte getControle() {
return (controle);
}
public ImageIcon getIcone() {
return icone;
}
/**
* initialiser l'image du dos et les dimensions d'une PCarte
*/
static {
iconeDos = new ImageIcon(
ClassLoader.getSystemResource("images/dos.jpg"));
largeur = iconeDos.getIconWidth() + 4;
hauteur = iconeDos.getIconHeight() + 4;
}
/**
* programme de test : � d�placer dans une classe d�di�e aux tests
*
* @param args
*/
public static void main(String args[]) {
JFrame f = new JFrame("Test PCarte");
f.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
f.setLayout(new FlowLayout()); // au lieu de BorderLayout par d�faut
f.getContentPane().setBackground(new Color(143, 143, 195)); // violet
// p�le
// une carte visible
PCarte pc = new PCarte("QH", null);
pc.setFaceVisible(true);
f.getContentPane().add(pc);
// une carte cach�e
pc = new PCarte("1D", null);
pc.setFaceVisible(false);
f.getContentPane().add(pc);
f.pack(); // dimensionner le cadre
f.setLocation(200, 100); // le positionner
f.setVisible(true); // et le rendre visible
} // main
} // PCarte