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

Оглавление

События
Обработка событий
События от мыши
Аплет LineDraw
Исходный текст
Описание текста

Назад Вперед

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

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

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

public class LineDraw extends Applet
{
  Dimension dmDown;
  Dimension dmUp;
  Dimension dmPrev;
  boolean bDrawing;
  Vector lines;
  public String getAppletInfo()
  {
    return "Name: LineDraw";
  }
  public void init()
  {
    bDrawing = false;
    lines = new Vector();
  }
  public void paint(Graphics g)
  {
    Dimension dimAppWndDimension = getSize();
    setBackground(Color.yellow);
    g.setColor(Color.black);
    g.drawRect(0, 0, 
      dimAppWndDimension.width  - 1, 
      dimAppWndDimension.height - 1);    
    for (int i=0; i < lines.size(); i++) 
    {
      Rectangle p = 
        (Rectangle)lines.elementAt(i);
      g.drawLine(p.width, p.height,
        p.x, p.y);
      g.drawString("<" + p.width 
        + "," + p.height + ">", 
        p.width, p.height);
      g.drawString("<" + p.x + "," +
        p.y+ ">", p.x, p.y);
    }
    bDrawing = false;
  }
  public boolean mouseDown(Event evt, 
    int x, int y)
  {
    if(evt.clickCount > 1)
    {
      lines.removeAllElements();
      repaint();
      return true;
    }
    dmDown = new Dimension(x, y);
    dmPrev = new Dimension(x, y);
    bDrawing = false;
    return true;
  }
  public boolean mouseUp(Event evt, 
    int x, int y)
  {
    if(bDrawing)
    {
      dmUp = new Dimension(x, y);
      lines.addElement(
        new Rectangle(dmDown.width, 
        dmDown.height, x, y));
      repaint();
      bDrawing = false;
    }
    return true;
  }
  public boolean mouseDrag(Event evt, 
    int x, int y)
  {
    Graphics g = getGraphics();
    bDrawing = true;
    g.setColor(Color.yellow);
    g.drawLine(dmDown.width, dmDown.height, 
      dmPrev.width, dmPrev.height);
    g.setColor(Color.black);
    g.drawLine(dmDown.width, 
      dmDown.height, x, y);
    dmPrev = new Dimension(x, y);
    return true;
  }
  public boolean mouseMove(Event evt, 
    int x, int y)
  {
    bDrawing = false;
    return true;
  }
}

Исходный текст документа HTML, подготовленного системой JavaWorkshop, представлен в листинге 2.

Листинг 2. Файл LineDraw.tmp.html

<applet name="LineDraw"
  code="LineDraw" 
  codebase=
"file:/e:/Sun/Articles/vol5/src/LineDraw"
  width="500"
  height="600"
  align="Top"
  alt="If you had a java-enabled browser, 
you would see an applet here.">
</applet>
Назад Вперед