Исходные тексты аплета Draw

Назад Вперед

Исходные тексты аплета Draw вы найдете в листинге 1.

Листинг 1. Файл draw.java

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

public class draw extends Applet
{
  Toolkit tk;
  String szFontList[];
  FontMetrics fm;
  int yStart = 20;
  int yStep;
  String parm_TestString;
  
  public void init()
  {
    tk = Toolkit.getDefaultToolkit();
    szFontList = tk.getFontList();  
    parm_TestString = 
      getParameter("TestString");
  }

  public String getAppletInfo()
  {
    return "Name: draw";
  }

  public void paint(Graphics g)
  {
    int yDraw;
    Dimension dimAppWndDimension = getSize();
    
    g.clearRect(0, 0, 
      dimAppWndDimension.width  - 1, 
      dimAppWndDimension.height - 1);
    
    g.setColor(Color.yellow);
    g.fillRect(0, 0, 
      dimAppWndDimension.width  - 1, 
      dimAppWndDimension.height - 1);

    g.setColor(Color.black);
    g.drawRect(0, 0, 
      dimAppWndDimension.width  - 1, 
      dimAppWndDimension.height - 1);

    fm = g.getFontMetrics();
    yStep = fm.getHeight();
    
    for(int i = 0; i < szFontList.length; i++)
    {
      g.setFont(new Font("Helvetica", 
        Font.PLAIN, 12));
      g.drawString(szFontList[i], 10, 
        yStart + yStep * i);
      
      fm = g.getFontMetrics();
      yStep = fm.getHeight();
      
      g.setFont(new Font(szFontList[i], 
        Font.PLAIN, 12));
      g.drawString(parm_TestString, 
        100, yStart + yStep * i);
    }

    yDraw = yStart + yStep * szFontList.length
      + yStep;

    Polygon p = new Polygon();
  
    p.addPoint(70, yDraw);
    p.addPoint(150, yDraw + 30);
    p.addPoint(160, yDraw + 80);
    p.addPoint(190, yDraw + 60);
    p.addPoint(140, yDraw + 30);
    p.addPoint(70, yDraw + 39);

    g.drawPolygon(p);

    g.setColor(Color.red);
    g.drawRect(10, yDraw + 85, 200, 100);

    g.setColor(Color.black);
    g.drawArc(10, yDraw + 85, 
      200, 100, -50, 320);
  }
  
  public String[][] getParameterInfo()
  {
    String[][] info =
    {
      {
	"TestString", "String", "Test string" 
      }
    };
    return info;
  }
}

Метод init

При инициализации аплета метод init извлекает список доступных шрифтов и принимает значение параметра TestString, передаваемое аплету в документе HTML.

Извлечение списка шрифтов

Процедура извлечения списка доступных шрифтов достаточно проста и выполняется следующим образом:

Toolkit tk;
String szFontList[];
  . . .
tk = Toolkit.getDefaultToolkit();
szFontList = tk.getFontList();  

Аплет вызывает статический метод getDefaultToolkit из класса Toolkit и затем, пользуясь полученной ссылкой, извлекает список шрифтов, записывая его в массив szFontList.

Для чего еще можно использовать класс Toolkit?

Класс Toolkit является абстрактным суперклассом для всех реализаций AWT. Порожденные от него классы используются для привязки различных компонент конкретных реализаций.

Создавая свои аплеты, вы будете редко прибегать к услугам этого класса. Однако в нем есть несколько полезных методов, прототипы которых мы перечислим ниже:

  • getDefaultToolkit

Получение ссылки на Toolkit

public static Toolkit getDefaultToolkit();	
  • getColorModel

Определение текущей цветовой модели, выбранной в контекст отображения

public abstract ColorModel getColorModel();	
  • getFontList

Получение списка шрифтов, доступных аплету

public abstract String[] getFontList();
  • getFontMetrics

Получение метрик заданного шрифта

public abstract FontMetrics 
  getFontMetrics(Font font);
  • getImage

Получение растрового изображения по имени файла

public abstract Image 
  getImage(String filename);
  • getImage

Получение растрового изображения по адресу URL

public abstract Image getImage(URL  url);	
  • getScreenResolution

Определение разрешения экрана в точках на дюйм

public abstract int getScreenResolution();
  • getScreenSize

Размеры экрана в пикселах

public abstract Dimension getScreenSize();
  • prepareImage

Подготовка растрового изображения для вывода

public abstract bool