Hem E-böcker Specialeffekter och spelutveckling i Java Hantering av fonter   

Specialeffekter och spelutveckling i Java(TM) - Hantering av fonter  

av Anibal Wainstein

6.0 Hantering av fonter

En annan styrka med Java är förmågan att kunna hantera fonter. Pga att Java är ett platformsoberoende språk så är antalet fonter begränsat till 6, där man egentligen bara har nytta av 4. Dessa fonter är Helvetica, TimesRoman, Courier och Dialog. Dessutom kan du också välja fet- och/eller kursiv stil:

 
Namn: Fet stil: Kursiv stil:
Helvetica Helvetica Helvetica
TimesRoman TimesRoman TimesRoman
Courier Courier Courier
Dialog Dialog Dialog

 

Fonterna som nämns ovan finns på alla Java kompatibla web tittare. Förutom funktionerna för att skapa fonter, så har Java med klassen FontMetrics, fantastiska möjligheter och kunna ta reda på texters dimensioner.

6.0.1 Hur man skapar ett Font-objekt och hur man väljer fontens namn, stil och storlek

Font klassen i Java finns i AWT paketet och dess constructor kräver tre argument: namnet, stilen och storleken. Titta på följande rad:

Font minfont=new Font("TimesRoman",Font.ITALIC,12);

Raden ovan kommer att skapa Font-objektet "minfont" som är en font med kursiv stil och fontstorleken 12. Vad som bör förklaras närmare för raden här ovan är fontstilen som väljs genom att specifiera Font.ITALIC (kursiv stil), Font.PLAIN (vanlig stil) eller Font.BOLD (fet stil). Variablerna "ITALIC", "PLAIN" och "BOLD" är statiska variabler som är inbyggda i Font klassen. Men hur gör man när man vill kombinera fontstilar? Jo, eftersom dessa variabler är vanliga integers så kan man helt enkelt lägga till dem för att kombinera fontstilarna. Följande rad skapar en font baserad på Helvetica som är både kursiv och fet:

Font minfont=new Font("Helvetica",Font.ITALIC+Font.BOLD,12);

Nu ska vi testa att rita ut en text med fonten som vi har valt. Observera att Font klassen duger bara till att användas för utskrifter på appletskärmen. Den har ingen effekt på Java konsolen. I Graphics klassen är det metoden setFont() som används för att specifiera fonten som drawString() senare kommer att använda. Färgen specifieras med setColor() som vanligt. Gör följande applet och skapa HTML kod som har dimensionerna 300x30 pixels för appleten:


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

public class fonttest extends Applet {

public void paint(Graphics g)
{
    //Vi skapar fonten med fontstorleken 16.
    Font f=new Font("Helvetica",Font.ITALIC,16);

    //setFont() metoden specifierar vilken
    //font som skall användas när man använder
    //drawString().
    g.setFont(f);

    //Vi rensar skärmen.
    g.setColor(Color.black);
    g.fillRect(0,0,300,30);

    //Nu ritar vi ut en text.
    g.setColor(Color.white);
    g.drawString("Detta är Helvetica, kursiv stil...",0,16);
}

}

Klicka här för att se exemplet. Observera att vi la till siffran 16 till y-positionen för texten. Titta på avsnitt 2.1.4 för att få reda på orsaken till detta. Passa på och testa att ändra fontnamn till "TimesRoman", "Courier" och "Dialog" för att se vad du har för vapen till förfogande i ditt arbete.

 

 


Nästa sida >>