# org.w3c.dom.events

***

**1. Event Listeners Handling DOM Events**

```java
document.addEventListener("click", (event) -> {
    // Handle the click event
});
```

**2. Listening for Custom Events**

```java
Element element = document.getElementById("my-element");
element.addEventListener("my-custom-event", (event) -> {
    // Handle the custom event
});
```

**3. Event Bubbling and Capture**

```java
document.addEventListener("click", (event) -> {
    if (event.target instanceof HTMLButtonElement) {
        // Button click event handling
    }
}, true); // Capture phase
```

**4. Stopping Event Propagation**

```java
document.addEventListener("click", (event) -> {
    event.stopPropagation();
    // Prevent event from bubbling up the tree
});
```

**5. Preventing Default Browser Actions**

```java
document.addEventListener("click", (event) -> {
    event.preventDefault();
    // Stop default action (e.g., form submission)
});
```

**6. Getting Event Type and Target**

```java
document.addEventListener("click", (event) -> {
    String eventType = event.getType(); // "click"
    Element targetElement = event.getTarget(); // Element that triggered the event
});
```

**7. Accessing Modifier Keys**

```java
document.addEventListener("keydown", (event) -> {
    boolean shiftKey = event.getShiftKey();
    boolean ctrlKey = event.getCtrlKey();
    boolean altKey = event.getAltKey();
});
```

**8. Handling Keyboard Events**

```java
document.addEventListener("keydown", (event) -> {
    switch (event.getKeyCode()) {
        case 13: // Enter key
            // Do something
            break;
        case 27: // Escape key
            // Do something else
            break;
    }
});
```

**9. Handling Mouse Events**

```java
document.addEventListener("mousemove", (event) -> {
    int x = event.getClientX();
    int y = event.getClientY();
});
```

**10. Handling Drag and Drop Events**

```java
document.addEventListener("dragstart", (event) -> {
    event.setDataTransfer().setData("text/plain", "Hello world");
});
```

**11. Creating Custom Events**

```java
CustomEvent event = new CustomEvent("my-custom-event", null);
document.dispatchEvent(event);
```

**12. EventTarget Interface**

```java
EventTarget target = document.getElementById("my-element");
target.addEventListener("click", (event) -> {
    // Handle the click event
});
```

**13. DOM Events Namespace**

```java
import org.w3c.dom.events.Event;
```

**14. Event Interface**

```java
Event event = new MouseEvent("click");
```

**15. MouseEvent Interface**

```java
MouseEvent event = new MouseEvent("click", false, false, null, 1, 2, 3, 4, 5, false, false, false, false, 0);
```

**16. KeyboardEvent Interface**

```java
KeyboardEvent event = new KeyboardEvent("keydown", false, false, null, 13, "Enter");
```

**17. EventListener Interface**

```java
class MyEventListener implements EventListener {
    @Override
    public void handleEvent(Event event) {
        // Handle the event
    }
}
```

**18. EventListenerList Interface**

```java
EventListenerList listenerList = document.getEventListeners();
for (int i = 0; i < listenerList.getLength(); i++) {
    EventListener listener = listenerList.item(i);
}
```

**19. CustomEvent Class**

```java
CustomEvent event = new CustomEvent("my-custom-event", new CustomEventInit());
```

**20. CustomEventInit Class**

```java
CustomEventInit init = new CustomEventInit();
init.setBubbles(true);
```

**21. EventTarget.addEventListener() Method**

```java
document.addEventListener("click", (event) -> {
    // Handle the click event
});
```

**22. EventTarget.removeEventListener() Method**

```java
document.removeEventListener("click", (event) -> {
    // Handle the click event
});
```

**23. EventTarget.dispatchEvent() Method**

```java
document.dispatchEvent(event);
```

**24. Event.getType() Method**

```java
String eventType = event.getType(); // "click"
```

**25. Event.getTarget() Method**

```java
Element targetElement = event.getTarget(); // Element that triggered the event
```

**26. Event.getCurrentTarget() Method**

```java
Element currentTarget = event.getCurrentTarget(); // Element currently handling the event
```

**27. Event.getBubbles() Method**

```java
boolean bubbles = event.getBubbles(); // True if the event bubbles up the tree
```

**28. Event.getCancelable() Method**

```java
boolean cancelable = event.getCancelable(); // True if the event can be canceled
```

**29. Event.getDefaultPrevented() Method**

```java
boolean defaultPrevented = event.getDefaultPrevented(); // True if the default action of the event has been prevented
```

**30. Event.preventDefault() Method**

```java
event.preventDefault(); // Prevents the default action of the event
```

**31. Event.stopPropagation() Method**

```java
event.stopPropagation(); // Prevents the event from bubbling up the tree
```

**32. Event.stopImmediatePropagation() Method**

```java
event.stopImmediatePropagation(); // Prevents the event from bubbling up the tree and stops event processing immediately
```

**33. Event.compose() Method**

```java
Event composedEvent = event.compose(new CustomEvent("another-custom-event"));
```

**34. Event.initEvent() Method**

```java
event.initEvent("click", true, true);
```

**35. EventListener.handleEvent() Method**

```java
public void handleEvent(Event event) {}
```

**36. EventListenerList.addEventListener() Method**

```java
eventListenerList.addEventListener("click", (event) -> {
    // Handle the click event
});
```

**37. EventListenerList.removeEventListener() Method**

```java
eventListenerList.removeEventListener("click", (event) -> {
    // Handle the click event
});
```

**38. CustomEvent.detail Property**

```java
CustomEvent event = new CustomEvent("my-custom-event", new CustomEventInit());
event.detail = "Hello world";
```

**39. CustomEventInit.bubbles Property**

```java
CustomEventInit init = new CustomEventInit();
init.setBubbles(true);
```

**40. CustomEventInit.cancelable Property**

```java
CustomEventInit init = new CustomEventInit();
init.setCancelable(true);
```

**41. CustomEventInit.composed Property**

```java
CustomEventInit init = new CustomEventInit();
init.setComposed(true);
```

**42. CustomEventInit.detail Property**

```java
CustomEventInit init = new CustomEventInit();
init.setDetail("Hello world");
```

**43. CustomEventInit.timeStamp Property**

```java
CustomEventInit init = new CustomEventInit();
init.setTimeStamp(1000);
```

**44. CustomEvent Constructor**

```java
CustomEvent event = new CustomEvent("my-custom-event", new CustomEventInit());
```

**45. MouseEvent Constructor**

```java
MouseEvent event = new MouseEvent("click", false, false, null, 1, 2, 3, 4, 5, false, false, false, false, 0);
```

**46. KeyboardEvent Constructor**

```java
KeyboardEvent event = new KeyboardEvent("keydown", false, false, null, 13, "Enter");
```

**47. EventListener Constructor**

```java
EventListener listener = new EventListener() {
    @Override
    public void handleEvent(Event event) {
        // Handle the event
    }
};
```

**48. EventListenerList Constructor**

```java
EventListenerList listenerList = new EventListenerList();
```

**49. CustomEventInit Constructor**

```java
CustomEventInit init = new CustomEventInit();
```

**50. EventTarget Namespace**

```java
import org.w3c.dom.events.EventTarget;
```
