Triple Eye Industrieel Ingenieur Informatica Algemeen Intranet Tweede jaar INWE Programmeren van GUI's GUI's Java
Labo GUI's 09-10: Java Swing reeks 2

Labo GUI's 09-10: Java Swing reeks 3

Analoog uurwerk

Maak een applicatie die een analoog uurwerk toont, zoals in dit voorbeeld.

Gebruik Graphics2D om te tekenen. Let erop dat alles meeschaalt als je het uurwerk vergroot.

Tip: roep nooit rechtstreeks paint() of paintComponent() op! Doe dit altijd indirect via repaint().

De precieze plaatsing van de getallen (1 tot 12) is niet zo eenvoudig. Bepaal eerst het middelpunt en de grootte van de omsluitende rechthoekjes. Hiervoor kun je gebruik maken van volgende hulpfunctie:

	// geeft precieze grootte van tekst zoals die getekend zou worden op g2
	public static Rectangle2D getBounds2D(Graphics2D g2, Font font, String tekst)
    {
		if (tekst==null || tekst.length()==0)
			return new Rectangle2D.Double(0,0,0,0);
		FontRenderContext frc = g2.getFontRenderContext();
		TextLayout tl = new TextLayout(tekst, font, frc);
		Shape outline = tl.getOutline(null);
		return outline.getBounds2D();
    }

W. Schepens 07/11/2008

Welkom | Hogeschool Gent | INWE | Studentenserver | Docentenserver | Intranet