// klausur.java // Ergebnisse der Klausur "Programmieren in Java" als Balkendiagramm import java.awt.*; public class klausur extends java.applet.Applet { String title = "Klausurergebnis ´Programmieren in Java'"; int fontsize = 12; int anz_teiln; int punkte[]; String namen[]; int scale = 10; int max_namen_länge = 0; int balken_abstand = 10; Font courier = new Font("Courier", Font.BOLD, fontsize); public void init() { String rs; // die anzahl der klausurteilnehmerInnen rs = getParameter("anz_teiln"); anz_teiln = Integer.parseInt(rs); // punkte- und namenslisten punkte = new int[anz_teiln]; namen = new String[anz_teiln]; for (int i=0; i < anz_teiln; i++) { // lies punkte und namen der teilnehmerInnen rs = getParameter("T" + (i+1)+ "_punkte"); punkte[i] = (rs == null) ? 0 : Integer.parseInt(rs); rs = getParameter("T" + (i+1) + "_name"); namen[i] = (rs == null) ? "Niemand, Norbert" : rs; // die länge des längsten namens merken wir uns if (getFontMetrics(courier).stringWidth(namen[i]) > max_namen_länge) max_namen_länge = getFontMetrics(courier).stringWidth(namen[i]); } } public void paint(Graphics g) { int cx, cy; g.setFont(courier); // schreibe die überschrift g.setColor(Color.black); g.drawString(title, 5, 15); for (int i=0; i < anz_teiln; i++) { // setze x- und y-koordinaten cx = max_namen_länge + 10; cy = (fontsize + balken_abstand) * i + balken_abstand + 30; // schreibe den namen g.setColor(Color.black); g.drawString(namen[i], 5, cy + fontsize); // male den blauen balken g.setColor(Color.blue); g.fillRect(cx, cy, punkte[i] * scale, fontsize); // schreibe punkzahl neben den balken g.drawString("" + punkte[i], cx + (punkte[i] * scale) + 10, cy + fontsize); } } }