Go Premium for a chance to win a PS4. Enter to Win

x
  • Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 236
  • Last Modified:

mouse event handling...

I have a question about mouse event handling.  Why can the mouseDrag(), mouseMove(), mouseEnter(), and mouseExit() methods be used by simply entering commands, while the mouseUp() and mouseDown()methods have to be "checked," (i.e. "if(evt.modifiers == 0))."  I'm just wondering if there's something I don't understand about event handling.  
0
Raydot
Asked:
Raydot
  • 4
  • 3
1 Solution
 
RaydotAuthor Commented:
Oh, and why does the evt.modifiers evaluate to 0 when the mouse is clicked instead of to 1, which seems more logical?

Thanks,

Raydot.
0
 
remboCommented:

There is no difference between the different methods
and how they go about handling events.

Most likely what you've seen is some inconsistent
programming style.  

The 0 vs. 1 thing is an old UNIX holdover.  

-Tony


0
 
russgoldCommented:
OK, you're both right.  What I was looking at was a program that checks whether the left or right mouse buttons are clicked.  So as to Tony's comment, the programming snippet I gave, out of context, was "inconsistent" with the other mouse event methods in the program I was describing in that it utilized an if...else construct, like russgold suggests, to check which button had been clicked.  

Just to get my $$$'s worth, these methods (mouseDown, mouseUp, mouseDrag, etc.) are checked by Java automatically?  They handle all mouse events and I don't have to do anything else? (e. g. initialize, monitor, thread, etc.)

Dave.

0
Concerto Cloud for Software Providers & ISVs

Can Concerto Cloud Services help you focus on evolving your application offerings, while delivering the best cloud experience to your customers? From DevOps to revenue models and customer support, the answer is yes!

Learn how Concerto can help you.

 
RaydotAuthor Commented:

Russ is correct, I was only speaking to the fact that there
is no actual difference between the methods in terms of
what they are required to handle.  What you can do
with them are different.  

Events in 1.02 and 1.1 are completely different.  However,
since you're asking about 1.02 methods, we'll stick to
those.  

The events will get passed to the default event handler
for the container if you don't handle them.  There is
no need to initalize, monitor or anything if you don't
need to monitor those events.  


0
 
remboCommented:
WHOA! (Record stops, bar clears out...) I'm talking about 1.02 events?  I'm reading a book on Visual J++ 1.1, so I thought I was dealing with Java 1.1.  How do you know these are 1.02 events, and if they are then how is it done in 1.1?
0
 
RaydotAuthor Commented:

While mouseMove, mouseEnter, etc. all still work in 1.1,
they are 1.02 event handling methods and are deprecated.
Methods are handled using mouseListener() and mouseMotionListener() and adapter classes.  It's a
completely different model.

The code you are writing will still work now, but
probably not in the the next real release of Java (2.0 -
1.2 will still be fine).

So, the deal is that you can do things the way you are
or you can move to the new event model.  

Even with 1.1 though, there's no need to handle those
events if you don't need to do anything with them.


0
 
remboCommented:
Mmmmm...this book I'm going through sucks.  That's like the third outdated method I've come across in it.  Maybe I'll e-mail the author...

Anyway, thanks Tony.

Raydot.
0
 
RaydotAuthor Commented:

I review a lot of books, and I'd be happy to recommend
a good text for you.


-Tony


0

Featured Post

Concerto's Cloud Advisory Services

Want to avoid the missteps to gaining all the benefits of the cloud? Learn more about the different assessment options from our Cloud Advisory team.

  • 4
  • 3
Tackle projects and never again get stuck behind a technical roadblock.
Join Now