import java.awt.*; /** Toepassing waarin het gebruik van een graphics * context wordt geillustreerd door middel van * een kadertje dat precies omheen een tekst past. * @author Lieven Smits * @version 1.0 24/7/2000 */ public class TekstInKader extends Frame { /** De via de opdrachtregel gespecifieerde tekst. */ String deTekst = "geen tekst gegeven"; /** Teken een tekst en plaats er een kadertje * rond. De afmetingen van de tekst * worden bepaald door het bijbehorende * lettertype te onderzoeken. * @param g * De grafische context waarop getekend wordt. */ public void paint(Graphics g) { int links = 25; int onder = 40; // druk de tekst af g.drawString(deTekst, links, onder); // bereken breedte, hoogte en diepte van de tekst FontMetrics fm = g.getFontMetrics(); int breedte = fm.stringWidth(deTekst); int hoogte = fm.getMaxAscent(); int diepte = fm.getMaxDescent(); // teken vier lijntjes rond de tekst, in de // volgorde: links, boven, rechts, onder int linksRecht = links - 1; int rechtsRecht = links + breedte + 1; int bovenRecht = onder - hoogte; int onderRecht = onder + diepte; g.drawLine(linksRecht, onderRecht, linksRecht, bovenRecht); g.drawLine(linksRecht, bovenRecht, rechtsRecht, bovenRecht); g.drawLine(rechtsRecht, bovenRecht, rechtsRecht, onderRecht); g.drawLine(rechtsRecht, onderRecht, linksRecht, onderRecht); } /** Toon een venster met tekst in een kadertje. * @param args[0] * De tekst die in het kadertje moet komen. */ public static void main(String[] args) { TekstInKader hetVenster = new TekstInKader(); if (args.length > 0) hetVenster.deTekst = args[0]; hetVenster.setSize(180, 80); hetVenster.show(); } }