|
Thanks a lot Renoir..I will try out the code in my
applet and get back. Thanks once again.
regards
Vijayan.
----- Original Message -----
Sent: Monday, August 20, 2001 4:02
PM
Subject: Re: [JAVA3D] Custom Behavior
class.
Hi,
I've attached some skeleton code.
--Renoir
Vijayan Pandalai wrote:
I wish to know how i
could write a custom behavior class which would invoke MouseClicked,
MouseDragged and MouseReleased events.
-- Renoir Sewjee Software Engineer ISS International
(Welkom) Tel: +27 (0)57 912 2702 Fax: +27 (0)57 912 2652 --
import java.awt.AWTEvent;
import
java.awt.event.MouseEvent; import java.awt.event.InputEvent; import
java.awt.event.ActionListener; import
java.awt.event.ActionEvent;
import java.util.Enumeration;
import
javax.media.j3d.Behavior; import
javax.media.j3d.WakeupOnAWTEvent; import
javax.media.j3d.WakeupCriterion; import
javax.media.j3d.WakeupOr;
public class CustomBehavior extends
Behavior { private WakeupOr
wakeupCriteria;
public
CustomBehavior() {
}
public void initialize()
{ WakeupOnAWTEvent[] mouseEvents
= new WakeupOnAWTEvent[3];
mouseEvents[0] = new
WakeupOnAWTEvent(MouseEvent.MOUSE_DRAGGED);
mouseEvents[1] = new
WakeupOnAWTEvent(MouseEvent.MOUSE_PRESSED);
mouseEvents[2] = new
WakeupOnAWTEvent(MouseEvent.MOUSE_RELEASED);
wakeupCriteria = new
WakeupOr(mouseEvents);
wakeupOn(wakeupCriteria); }
public void processStimulus(Enumeration criteria)
{ while
(criteria.hasMoreElements())
{
WakeupCriterion wakeup =
(WakeupCriterion)criteria.nextElement();
if (wakeup instanceof
WakeupOnAWTEvent)
{
AWTEvent[] events =
((WakeupOnAWTEvent)wakeup).getAWTEvent();
if (events.length > 0 && events[events.length-1] instanceof
MouseEvent)
{
MouseEvent event =
(MouseEvent)events[events.length-1];
int id =
event.getID();
int mod =
event.getModifiers();
int x =
event.getX();
int y =
event.getY();
if (id ==
MouseEvent.MOUSE_RELEASED)
{
// mouse released code for all
buttons.
}
// right mouse
button
if (mod ==
InputEvent.BUTTON3_MASK)
{
if (id ==
MouseEvent.MOUSE_DRAGGED)
{
// right mouse button dragged
code
}
else if (id ==
MouseEvent.MOUSE_PRESSED)
{
// right mouse button pressed
code
}
}
// left mouse
button
if (mod ==
InputEvent.BUTTON1_MASK)
{
if (id ==
MouseEvent.MOUSE_DRAGGED)
{
// left mouse button dragged
code
}
else if (id ==
MouseEvent.MOUSE_PRESSED)
{
// left mouse button pressed
code
}
}
}
}
}
wakeupOn(wakeupCriteria);
} }
|