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 >>
|