Hoofdstuk 3, opdracht 4

Opdracht

Bij deze opdracht was het de bedoeling drie tekstvelden te plaatsen waar respectievelijk het aantal appels, pruimen en peren kan worden ingevuld. Het was de bedoeling dat als je op de knop klikt, er drie staafdiagrammen werden getekend. In plaats daarvan hebben we er een taart diagram van gemaakt.

Applet

Code

import java.awt.*;
import java.applet.*;
import java.awt.event.*;

public class Appletje extends Applet implements ActionListener {
	
	// Defineer textfields, button
	TextField txtAppels, txtPruimen, txtPeren;
	Button btnDiagram;
	
	// Defineer globale variabelen
	boolean berekend;
	int appels;
	int pruimen;
	int peren;
	
	public void init() {
		
		// Maak een instantie van de tekstvelden
		txtAppels = new TextField(5);
		txtPruimen = new TextField(5);
		txtPeren = new TextField(5);
		
		// Maak een instantie van de button
		btnDiagram = new Button("Diagram");
		btnDiagram.addActionListener(this);
		
		// Voeg tekstvakken en knop toe aan GUI
		add(txtAppels);
		add(txtPruimen);
		add(txtPeren);
		add(btnDiagram);
						
	}
	
	public void paint(Graphics g) {
		
		if ( berekend ) {
			
			// Bereken het totaal
			int totaal = this.appels + this.pruimen + this.peren;
			
			// Bereken de percentages
			int percentAppels = ( this.appels * 360 / totaal );
			int percentPruimen = ( this.pruimen * 360 / totaal );
			int percentPeren = ( this.peren * 360 / totaal );
			
			// Teken taartpunten
			g.setColor(Color.red);
			g.fillArc(60, 50, 200, 200, 0, percentAppels );			
			g.setColor(Color.yellow);
			g.fillArc(60, 50, 200, 200, percentAppels, percentPruimen );	
			g.setColor(Color.green);
			g.fillArc(60, 50, 200, 200, ( percentAppels + percentPruimen ), percentPeren );
			
		}
		
	}
	
	public void actionPerformed( ActionEvent e ) {
		
		// Als er op btnDiagram gedrukt is:
		if (e.getSource() == btnDiagram) {
			
			// Zet waarden in variabele en bereken totoaal
			this.appels = Integer.parseInt(txtAppels.getText());
			this.pruimen = Integer.parseInt(txtPruimen.getText());
			this.peren = Integer.parseInt(txtPeren.getText());
			
			// Geef aan dat we  iets ontvangen hebben
			this.berekend = true;
			
			// Teken de output opnieuw
			repaint();
			
		}
		
	}
	
}

Selecteer code

Screenshot

Hoofdstuk 3, opdracht 4