import java.awt.*; import java.applet.*; import javax.swing.*; /** * Lektionsmaterial till kursmomentet 2I1049. * En applet som presenterar en text: "Hallå Java" * * @author Peter Mozelius * Rapportera hittade fel till: mozelius@dsv.su.se * @version 1.1, 2005-04-11 */ public class Lektion2 extends JApplet{ private final int WIDTH = 350; private final int HEIGHT = 200; private JPanel panel; private TextYta ty; /** * init() anropas som första metod efter att applet-objektet har skapats. * I denna metod utförs initieringen av en applet, dvs denna metod har * konstruktorns roll i en applet. Konstruktorn blir inte anropad i en * applet och skall inte användas, en mycket viktig varning! Lägg alltså * ingen kod i en applets konstruktor. */ public void init(){ this.setSize(WIDTH, HEIGHT); ty = new TextYta(WIDTH, HEIGHT); this.getContentPane().add(ty,"Center"); } } /** *

Lektionsmaterial till kursmomentet 2I1049.

*

En textyta som presenterar en text: "Hallå Java".

* * @author Peter Mozelius * Rapportera hittade fel till: * Peter Mozelius * @version 1.0, 2004-04-07 */ class TextYta extends JPanel{ private int width; private int height; private String text; private Font minFont; private FontMetrics fm; private Dimension dim; private int x; private int y; /** * Konstruktor för TextYta * @param width Bredden på ytan * @param height Höjden på ytan */ public TextYta(int width, int height){ super(); this.width = width; this.height = height; this.setSize(width, height); setBackground(new Color(0, 99, 0)); // en grönaktig färg minFont = new Font("TimesRoman", java.awt.Font.BOLD, 52); text = new String("Hallå Java!"); } // konstruktor /** * PainComponent överskuggas här. Metoden används för att rita ut textytan. * @param g Grafiken tas som ett argument */ public void paintComponent(Graphics g){ super.paintComponent(g); g.setColor(new Color(204, 204, 0)); // gulaktig färg g.setFont(minFont); // Sätt rätt Font i grafiken fm = g.getFontMetrics(minFont); // Hämta FontMetrics från det grafiska objektet dim = getSize(); // Hämta storleken på detta Objekt int sWidth = fm.stringWidth(text); // Hur lång är texten ? x = (dim.width/2) - (sWidth/2); // skriv in texten på mitten i x-led y = HEIGHT/2 + 10; // 110 // skriv in texten på mitten i y-led g.drawString(text, x, y); // Skriv in text mitt i Äpplet }// paintComponent(Graphics g) har nu överlagrats }