NazajNaprejKazalo

Java2D - Uporaba lokalnih pisav


4.1 Lokalne pisave: Pregled

Uporabimo lahko enaka imena za pisave kot v Javi 1.1, na primer Serif (Times), SansSerif (Helvetica ali Arial), Monospaced (Courier), Dialog in DialogInput.

Prav tako lahko uporabimo lokalne pisave če najprej pogledamo celoten izpis pisav, kar lahko traja tudi nekaj sekund. Pregled pisav z ukazoma getAllFonts ali getAvailableFontFamilyNames (pod GraphicsEnvironment) izgleda takole:

  GraphicsEnvironment env = GrapicsEnvironment.getLocalGraphicsEnvironment();
Potem
  env.getAllFonts();
ali
  env.getAvailableFontFamilyNames();
Najboljši način bi bilo izvajanje getAvailableFontFamilyNames v zanki in iskanje željenega imena, pri čemer moramo imeti na razpolago tudi rezervna imena, če prve izbire ni na voljo. Če konstruktorju Font pošljemo pisavo, ki je ni na lokalnem računalniku, bo uporabljena pisava SansSerif. V nasprotju z zavajajočim opisom v API bo v JDK 1.2B4 uporabljena pisava SansSerif, če bomo hoteli uporabiti pisavo, katere prej nismo poiskali med razpoložljivimi, čeprav je na voljo na lokalnem računalu.

4.2 Primer 1 -- Izpis vseh razpoložljivih lokalnih pisav

Uporabljena datoteka: ListFonts.java.
import java.awt.*;



/** Listing the names of all available local fonts with
 *  Java2D in Java 1.2.
 *  1998 Marty Hall, http://www.apl.jhu.edu/~hall/java/
 */



public class ListFonts {

  public static void main(String[] args) {

    GraphicsEnvironment env = GraphicsEnvironment.getLocalGraphicsEnvironment();

    String[] fontNames = env.getAvailableFontFamilyNames();

    System.out.println("Available Fonts:");

    for(int i=0; i<fontNames.length; i++)

      System.out.println("  " + fontNames[i]);

  }

}

4.3 Primer 2 -- Risanje z lokalnimi pisavami

Uporabljene datoteke: DrawExample3.java, DrawExample2.java, DrawExample1.java, WindowUtil.java in ExitListener.java
import java.awt.*;

public class DrawExample3 extends DrawExample2 {

  public DrawExample3() {

    loadFonts();

  }



  protected void loadFonts() {

    GraphicsEnvironment env = GraphicsEnvironment.getLocalGraphicsEnvironment();

    env.getAllFonts();

    setFont(new Font("Goudy Handtooled BT", Font.PLAIN, 100));

  }



  protected void drawBigString(Graphics2D g2d) {

    g2d.setPaint(Color.black);

    g2d.drawString("Java 2D", 25, 215);

  }



  public void paintComponent(Graphics g) {

    Graphics2D g2d = (Graphics2D)g;

    g2d.clearRect(0, 0, getSize().width, getSize().height);

    drawFilledCircle(g2d);

    drawBigString(g2d);

  }



  public static void main(String[] args) {

    WindowUtil.openInJFrame(new DrawExample3(), 380, 400);

  }

}

4.4 Risanje z lokalnimi pisavami: Izgled izpisa

Izpis: risanje z lokalnimi pisavami v Javi2D

NazajNaprejKazalo

avtor: Filip Božič
december, 1998