-
Bug
-
Resolution: Duplicate
-
P3
-
None
-
1.3.0
-
x86
-
linux
Name: boT120536 Date: 12/01/2000
java version "1.3.0beta_refresh"
Java(TM) 2 Runtime Environment, Standard Edition (build 1.3.0beta_refresh-b09)
Java HotSpot(TM) Client VM (build 1.3.0beta-b07, mixed mode)
The following code displays the mouse events that are produced:
import java.awt.*;
import java.awt.event.*;
import java.util.Vector;
import java.util.Enumeration;
public class MouseEvents extends Frame implements MouseListener,
MouseMotionListener {
public static void main(String argv[]) {
MouseEvents st = new MouseEvents();
st.setSize(100,100);
st.setResizable(false);
st.show();
}
String name;
public MouseEvents() {
addMouseListener(this);
addMouseMotionListener(this);
}
//---------------------------------------------
// MouseListener
public void mouseClicked(MouseEvent e){
System.out.println("mouseClicked "+e);
System.out.println("clickCount "+e.getClickCount());
printButtons(e);
}
public void mousePressed(MouseEvent e) {
System.out.println("mousePressed " + e);
printButtons(e);
}
public void mouseReleased(MouseEvent e){
System.out.println("mouseReleased "+e);
printButtons(e);
}
public void mouseEntered(MouseEvent e){
System.out.println("mouseEntered "+e);
printButtons(e);
}
public void mouseExited(MouseEvent e){
System.out.println("mouseExited "+e);
printButtons(e);
}
//---------------------------------------------
// MouseMotionListener
public void mouseMoved(MouseEvent e) {
System.out.println("mouseMoved "+e);
printButtons(e);
}
public void mouseDragged(MouseEvent e) {
System.out.println("mouseDragged "+e);
printButtons(e);
}
private void printButtons(MouseEvent e) {
if ((e.getModifiers() & InputEvent.BUTTON1_MASK) != 0)
System.out.println("Button 1");
if ((e.getModifiers() & InputEvent.BUTTON2_MASK) != 0)
System.out.println("Button 2");
if ((e.getModifiers() & InputEvent.BUTTON3_MASK) != 0)
System.out.println("Button 3");
}
}
Example output 1 (no buttons pressed):
mouseEntered
java.awt.event.MouseEvent[MOUSE_ENTERED,(101,27),mods=0,clickCount=0] on frame0
mouseMoved java.awt.event.MouseEvent[MOUSE_MOVED,(101,28),mods=16,clickCount=0]
on frame0
Button 1
mouseExited java.awt.event.MouseEvent[MOUSE_EXITED,(102,28),mods=0,clickCount=0]
on frame0
Example output 2 (button 1 pressed):
mouseEntered
java.awt.event.MouseEvent[MOUSE_ENTERED,(49,19),mods=0,clickCount=0] on frame0
mousePressed
java.awt.event.MouseEvent[MOUSE_PRESSED,(49,19),mods=16,clickCount=1] on frame0
Button 1
mouseReleased
java.awt.event.MouseEvent[MOUSE_RELEASED,(49,19),mods=16,clickCount=1] on frame0
Button 1
mouseClicked
java.awt.event.MouseEvent[MOUSE_CLICKED,(49,19),mods=16,clickCount=1] on frame0
clickCount 1
Button 1
mouseExited java.awt.event.MouseEvent[MOUSE_EXITED,(49,18),mods=0,clickCount=0]
on frame0
Example output 3 (button 3 pressed):
mouseEntered java.awt.event.MouseEvent[MOUSE_ENTERED,(4,54),mods=0,clickCount=0]
on frame0
mousePressed
java.awt.event.MouseEvent[MOUSE_PRESSED,(4,54),mods=20,clickCount=1] on frame0
Button 1
Button 3
mouseReleased
java.awt.event.MouseEvent[MOUSE_RELEASED,(4,54),mods=20,clickCount=1] on frame0
Button 1
Button 3
mouseClicked
java.awt.event.MouseEvent[MOUSE_CLICKED,(4,54),mods=20,clickCount=1] on frame0
clickCount 1
Button 1
Button 3
mouseExited java.awt.event.MouseEvent[MOUSE_EXITED,(3,54),mods=0,clickCount=0]
on frame0
JDK 1.3 Beta Refresh on Linux sets BUTTON1_MASK (0x16) for every mouse event
except mouse entered and mouse exited. Pressing or releasing mouse button 1 has
no effect on the modifiers, but does fire the correct events. If button 2 or 3
are pressed, the modifiers indicate that both button 1 and the actually pressed
mouse button are pressed.
JDK 1.2.2 Linux does not display this problem. This behaviour is not observed
on Windows using JDK 1.1.8, JDK 1.2.2 or JDK 1.3.
(Review ID: 108707)
======================================================================
- duplicates
-
JDK-4353201 The MouseEvent modifiers have wrong value with 2 buttons pressed
-
- Closed
-