Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package mvc.view;
- import java.awt.image.BufferedImage;
- import java.io.File;
- import mvc.model.Registry;
- import java.io.IOException;
- import java.util.Observable;
- import java.util.Observer;
- import javax.imageio.ImageIO;
- import javax.swing.ImageIcon;
- import javax.swing.JLabel;
- import model.enumeration.CoinFace;
- import model.interfaces.Coin;
- import mvc.model.Model;
- import mvc.model.Registry;
- public class CoinView extends JLabel implements Observer{
- private static final String COIN_HEADS_PATH = "img/heads.png";
- private static final String COIN_TAILS_PATH = "img/tails.png";
- private final int coinNumber;
- private Model model;
- public CoinView(int number) {
- coinNumber = number;
- model = Registry.getModel();
- model.addObserver(this);
- try {
- BufferedImage img = ImageIO.read(new File(COIN_HEADS_PATH));
- ImageIcon icon = new ImageIcon(img);
- setIcon(icon);
- } catch (IOException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- }
- }
- @Override
- public void update(Observable o, Object arg) {
- Model observable = (Model) o;
- if(arg != null) {
- if((int)arg == Model.PLAYER_COIN_UPDATE && observable.getCurrentCoin().getNumber() == coinNumber) {
- setFace(observable.getCurrentCoin().getFace());
- }
- else if((int)arg == Model.SPINNER_COIN_UPDATE && observable.getCurrentCoin().getNumber() == coinNumber){
- setFace(observable.getCurrentCoin().getFace());
- }
- }
- }
- private void setFace(CoinFace coinface) {
- if(coinface == CoinFace.HEADS) {
- try {
- BufferedImage img = ImageIO.read(new File(COIN_HEADS_PATH));
- ImageIcon icon = new ImageIcon(img);
- setIcon(icon);
- } catch (IOException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- }
- }else if(coinface == CoinFace.TAILS) {
- try {
- BufferedImage img = ImageIO.read(new File(COIN_TAILS_PATH));
- ImageIcon icon = new ImageIcon(img);
- setIcon(icon);
- } catch (IOException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- }
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement