![[Назад]](prev.gif) |
|
Исходный текст программы MouseMove.java
|
Оглавление |
Назад
// ==========================================
// MouseMove.java
//(C) Alexandr Frolov, 1998
// E-mail: frolov@glasnet.ru
// Web: http://www.glasnet.ru/~frolov
// ==========================================
import java.applet.Applet;
import java.awt.*;
import java.awt.event.*;
public class MouseMove extends Applet
implements MouseMotionListener, MouseListener
{
Image imFloppy;
int imHeight;
int imWidth;
Rectangle rcImage;
boolean bBeginDrag = false;
int imX = 0;
int imY = 0;
int dx = 0;
int dy = 0;
Dimension dm;
// ============================================
// 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);
rcImage = new Rectangle(imX, imY,
imHeight, imWidth);
dm = getSize();
this.addMouseMotionListener(this);
this.addMouseListener(this);
}
// ============================================
// getAppletInfo
// ============================================
public String getAppletInfo()
{
return "Name: MouseMove";
}
// ============================================
// paint
// ============================================
public void paint(Graphics g)
{
g.drawRect(0, 0,
dm.width - 1, dm.height - 1);
g.drawImage(imFloppy,
imX + dx, imY + dy, this);
rcImage = new Rectangle(imX + dx, imY + dy,
imHeight, imWidth);
}
// ============================================
// mouseMoved
// ============================================
public void mouseMoved(MouseEvent e)
{
}
// ============================================
// mouseDragged
// ============================================
public void mouseDragged(MouseEvent e)
{
int newX;
int newY;
if(bBeginDrag)
{
newX = e.getX();
newY = e.getY();
if(newX < -dx)
imX = -dx;
else if((newX + imWidth + dx) > dm.width)
imX = dm.width - imWidth - dx;
else
imX = newX;
if(newY < -dy)
imY = -dy;
else if((newY + imHeight + dy) > dm.height)
imY = dm.height - imHeight - dy;
else
imY = newY;
repaint();
}
}
// ============================================
// mousePressed
// ============================================
public void mousePressed(MouseEvent e)
{
bBeginDrag =
rcImage.contains(e.getX(), e.getY());
if(bBeginDrag)
{
dx = imX + dx - e.getX();
dy = imY + dy - e.getY();
}
}
// ============================================
// mouseReleased
// ============================================
public void mouseReleased(MouseEvent e)
{
bBeginDrag = false;
}
// ============================================
// mouseClicked
// ============================================
public void mouseClicked(MouseEvent e)
{
}
// ============================================
// mouseEntered
// ============================================
public void mouseEntered(MouseEvent e)
{
}
// ============================================
// mouseExited
// ============================================
public void mouseExited(MouseEvent e)
{
}
}
|
![[Назад]](prev.gif) |
|