Lösung Übung 11: Wahlergebnis




import java.awt.*;
import java.applet.Applet;

public class WahlErgebnis extends Applet {
	
	private String[] parteien = {
		"CDU",
		"SPD",
		"Grüne/B90",
		"FDP",
		"Sonstige"
	};
	
	private Color[] parteiFarben = {
		Color.black,
		Color.red,
		Color.green,
		Color.blue,
		Color.lightGray
	};
	
	private double[] prozente = {
		40.0, 30.0, 5.0, 5.0, 20.0
	};
	
	private Font f;
	private int height;
	private int maxParteiLength;
	
	public void init() {
	
		// Einmalige Initialisierungen
		f = new Font("SansSerif", Font.BOLD, 14);
		setFont(f);
		FontMetrics fm = getFontMetrics(f);
		height = fm.getHeight();
			
		for( int i = 0; i < parteien.length; i++ ) {
			int len = fm.stringWidth(parteien[i]);
			if( maxParteiLength < len )
				maxParteiLength = len;
		}

	}
	
	public void paint( Graphics g ) {
		// Position Text	
		int xpos1 = 10;
		// Position Balken
		int xpos2 = xpos1 + maxParteiLength + 5;
		// Vertikale Startposition
		int ypos = 10 + height;
		int scale = 5;
				
		for( int i = 0; i < parteien.length; i++ ) {
			// Textausgabe
			g.setColor(Color.black);		
			g.drawString( parteien[i], xpos1, ypos );
	
			// Balkenausgabe
			int balkenLen = (int)(prozente[i]*scale);
			g.setColor(parteiFarben[i]);
			g.fillRect( xpos2, ypos-height/2, balkenLen, 10 );	
	
			// Prozentausgabe
			g.setColor(Color.black);		
			g.drawString( Double.toString(prozente[i]) + " %", xpos2+balkenLen+5, ypos );			
	
			// Zeilensprung
			ypos += height+5;
		}
	}
}

[Index]