Электронная библиотека книг Александра Фролова и Григория Фролова.
Shop2You.ru Создайте свой интернет-магазин
Библиотека
Братьев
Фроловых
[Назад]

Исходный текст программы AnySize.java

Оглавление

Назад

// ==========================================
// AnySize.java
//(C) Alexandr Frolov, 1998
// E-mail: frolov@glasnet.ru
// Web:    http://www.glasnet.ru/~frolov 
// ==========================================
import java.applet.Applet;
import java.awt.*;

public class AnySize extends Applet
{
  Image imFloppy;
  int imHeight;
  int imWidth;
  Dimension dm;
  
  boolean bBeginDrag = false;
  Rectangle rcImageCorner;
  
  // ============================================
  // init
  // ============================================
  public void init()
  {
    MediaTracker tr = new MediaTracker(this);
    
    imFloppy = getImage(getCodeBase(),
      "disk.gif");
    tr.addImage(imFloppy, 0);
    try
    {
      tr.waitForAll();
    }
    catch (InterruptedException e) {}
    
    imHeight = imFloppy.getHeight(this);
    imWidth = imFloppy.getWidth(this);
    
    dm = size();
    
    setBackground(Color.white);
    setForeground(Color.black);
  }
  
  // ============================================
  // getAppletInfo
  // ============================================
  public String getAppletInfo()
  {
    return "Name: AnySize";
  }
  
  // ============================================
  // paint
  // ============================================
  public void paint(Graphics g)
  {
    g.drawRect(0, 0, 
      dm.width - 1, dm.height - 1);
      
    g.drawImage(imFloppy, 0, 0, 
	imWidth, imHeight, this);
	
    g.fillRect(imWidth - 5, imHeight - 5, 5, 5);
    
    rcImageCorner = new Rectangle(
      imWidth - 5, imHeight - 5, 5, 5);
      
    if(bBeginDrag)
      g.setColor(Color.black);
    else      
      g.setColor(Color.white);
      
    g.drawLine(imWidth - 15, imHeight,
      imWidth + 15, imHeight);
	
    g.drawLine(imWidth, imHeight - 15, 
      imWidth, imHeight + 15);
  }
  
  // ============================================
  // mouseDown
  // ============================================
  public boolean mouseDown(Event e, 
    int x, int y)
  {
    bBeginDrag = 
      rcImageCorner.contains(x, y);
      
    return true;
  }
  
  // ============================================
  // mouseUp
  // ============================================
  public boolean mouseUp(Event e, 
    int x, int y)
  {
    bBeginDrag = false;
    repaint();
    return true;
  }
  
  // ============================================
  // mouseDrag
  // ============================================
  public boolean mouseDrag(Event e, 
    int x, int y)
  {
    if(bBeginDrag)
    {
      imHeight = y;
      imWidth = x;
    
      repaint();
    }  
    return true;
  }
}

[Назад]