enableEvents()

Status
Nicht offen für weitere Antworten.

Reality

Top Contributor
Hi,
warum geht das? ???:L

Code:
enableEvents(KeyEvent.KEY_EVENT_MASK | MouseEvent.MOUSE_EVENT_MASK |
                     MouseEvent.MOUSE_MOTION_EVENT_MASK |
                     MouseEvent.MOUSE_WHEEL_EVENT_MASK);

Hier werden ja alle int-Werte einer bitorientierten Oder-Verknüpfung ausgesetzt. Ist der Endwert etwas in der VM definiert, so dass er erkennt, welche Events alle aktiviert werden müssen?

Liebe Grüße
Reality
 

Illuvatar

Top Contributor
Das geht z.B. so: (Die Werte sind nur grad für dieses Beispiel ausgewählt)
Code:
public static final long KEY_EVENT_MASK = 0x01;
public static final long MOUSE_EVENT_MASK = 0x02;
public static final long MOUSE_MOTION_EVENT_MASK = 0x04;
public static final long MOUSE_WHEEL_EVENT_MASK = 0x08;
public static final long WINDOW_EVENT_MASK = 0x10;
und dann mit binärem Und testen:
Code:
public void enableEvents(long mask)
{
  if ((mask & 0x01) == 0x01){
    //key-events aktivieren
  }
  if ((mask & 0x01) == 0x02){
    //mouse-events aktivieren
  }
  //usw
}
Und wenn man jetzt z.B. KEY_EVENT_MASK (00001) und MOUSE_EVENT_MASK (00010) mit binärem oder verknüpft, kommt 00011 raus, und beide if-Blöcke werden durchlaufen.
 
B

Beni

Gast
Wenn schon:
Code:
  if ((mask & 0x02) == 0x02){
    //mouse-events aktivieren
  }
:wink:
 
Status
Nicht offen für weitere Antworten.

Neue Themen


Oben