All pastes #243434 Raw Edit

Untitled

public text v1 · immutable
·published 2006-11-08 14:00 UTC
rendered paste body
import java.awt.*;
import java.awt.event.*;
import java.applet.*;

public class Opdracht13_05 extends Applet {
	Button      b1, b2;
	Panel       p1;
	Dobbelsteen d1, d2;
	
	public void init() {
		setLayout(new BorderLayout());
		
		b1 = new Button("Gooi 1");
		b2 = new Button("Gooi 2");
		d1 = new Dobbelsteen(50, 10);
		d2 = new Dobbelsteen(150, 10);
		p1 = new Panel();
		
		b1.addActionListener(new ButtonHandler());
		b2.addActionListener(new ButtonHandler());
		p1.add(b1);
		p1.add(b2);
		
		add(p1, BorderLayout.SOUTH);
		add(d1, BorderLayout.CENTER);
	}
	
	public class ButtonHandler implements ActionListener {
		public void actionPerformed(ActionEvent e) {
			if ( e.getSource() == b1 ){
				d1.gooiDobbelsteen();
			}
			if ( e.getSource() == b2 ) {
				d2.gooiDobbelsteen();
			}
		}
	}
}

class Dobbelsteen extends Canvas {
	private int aantalOgen    = 0;
	private int xDice         = 0;
	private int yDice         = 0;
	private int widthDice     = 80;
	private int heightDice    = 80;
	private int arcWidthDice  = 25;
	private int arcHeightDice = 25;
	
	private int xEye          = 0;
	private int yEye          = 0;
	private int widthEye      = 10;
	private int heightEye     = 10;
	private int arcWidthEye   = 180;
	private int arcHeightEye  = 180;
	
	public Dobbelsteen(int xDice, int yDice) {
		this.xDice = xDice;
		this.yDice = yDice;
	}
	
	private void setAantalOgen() {
		this.aantalOgen = (int)(6 * Math.random() + 1);
	}
	
	protected void gooiDobbelsteen() {
		this.setAantalOgen();
		repaint();
	}
	
	public void paint(Graphics g) {
		g.setColor(Color.black);
		switch(this.aantalOgen) {
		case 1:
			g.fillRoundRect(this.xDice, this.yDice, this.widthDice, this.heightDice, this.arcWidthDice, this.arcHeightDice);
			g.setColor(Color.red);
			this.xEye = this.widthDice / 2 + this.xDice - 5;
			this.yEye = (this.yDice + this.heightDice) / 2;
			g.fillRoundRect(this.xEye, this.yEye, this.widthEye, this.heightEye, this.arcWidthEye, this.arcHeightEye);
			break;
		case 2:
			g.fillRoundRect(this.xDice, this.yDice, this.widthDice, this.heightDice, this.arcWidthDice, this.arcHeightDice);
			g.setColor(Color.red);
			this.xEye = this.xDice + 10;
			this.yEye = this.yDice + 10;
			for(int i = 0; i < 2; i++) {
				g.fillRoundRect(this.xEye, this.yEye, this.widthEye, this.heightEye, this.arcWidthEye, this.arcHeightEye);
				xEye += 50;
				yEye += 50;
			}
			break;
		case 3:
			g.fillRoundRect(this.xDice, this.yDice, this.widthDice, this.heightDice, this.arcWidthDice, this.arcHeightDice);
			g.setColor(Color.red);
			this.xEye = xDice + 10;
			this.yEye = yDice + 10;
			for(int i=0; i < 3; i++) {
				g.fillRoundRect(this.xEye, this.yEye, this.widthEye, this.heightEye, this.arcWidthEye, this.arcHeightEye);
				this.xEye += 25;
				this.yEye += 25;
			}
			break;
		case 4:
			g.fillRoundRect(this.xDice, this.yDice, this.widthDice, this.heightDice, this.arcWidthDice, this.arcHeightDice);
			g.setColor(Color.red);
			// Zou ook in een lusje kunnen, controleren of i restant heeft. Zo ja: dan bijv. onderaan plaatsen
			// Maar twee lusjes is makkelijker te lezen :- )
			this.xEye = this.xDice + 10;
			this.yEye = this.yDice + 10;
			for (int i=0; i < 2; i++) {
				g.fillRoundRect(this.xEye, this.yEye, this.widthEye, this.heightEye, this.arcWidthEye, this.arcHeightEye);
				this.xEye += 50;
			}
			this.xEye  = this.xDice + 10;
			this.yEye += 50;
			for (int i=0; i < 2; i++) {
				g.fillRoundRect(this.xEye, this.yEye, this.widthEye, this.heightEye, this.arcWidthEye, this.arcHeightEye);
				this.xEye += 50;
			}
			break;
		case 5:
			g.fillRoundRect(this.xDice, this.yDice, this.widthDice, this.heightDice, this.arcWidthDice, this.arcHeightDice);
			this.xEye = this.xDice + 10;
			this.yEye = this.yDice + 10;
			g.setColor(Color.red);
			for (int i=0; i < 2; i++) {
				g.fillRoundRect(this.xEye, this.yEye, this.widthEye, this.heightEye, this.arcWidthEye, this.arcHeightEye);
				this.xEye += 50;
			}
			this.xEye  = this.xDice + 10;
			this.yEye += 50;
			for (int i=0; i < 2; i++) {
				g.fillRoundRect(this.xEye, this.yEye, this.widthEye, this.heightEye, this.arcWidthEye, this.arcHeightEye);
				this.xEye += 50;
			}
			this.xEye = this.widthDice / 2 + this.xDice - 5;
			this.yEye = (this.yDice + this.heightDice) / 2;
			g.fillRoundRect(this.xEye, this.yEye, this.widthEye, this.heightEye, this.arcWidthEye, this.arcHeightEye);
			break;
		case 6:
			g.fillRoundRect(this.xDice, this.yDice, this.widthDice, this.heightDice, this.arcWidthDice, this.arcHeightDice);
			g.setColor(Color.red);
			// Zou ook in een lusje kunnen, controleren of i restant heeft. Zo ja: dan bijv. onderaan plaatsen
			// Maar twee lusjes is makkelijker te lezen :- )
			this.xEye = this.xDice + 10;
			this.yEye = this.yDice + 10;
			for (int i=0; i < 3; i++) {
				g.fillRoundRect(this.xEye, this.yEye, this.widthEye, this.heightEye, this.arcWidthEye, this.arcHeightEye);
				this.yEye += 25;
			}
			this.xEye  = this.xDice + 60;
			this.yEye  = this.yDice + 10;
			for (int i=0; i < 3; i++) {
				g.fillRoundRect(this.xEye, this.yEye, this.widthEye, this.heightEye, this.arcWidthEye, this.arcHeightEye);
				this.yEye += 25;
			}
			break;
		default:
			g.drawString("Er is nog niet gegooid."+this.aantalOgen, 30, 40);
			break;
		}
	}
}