Ejemplo n.º 1
0
  /**
   * Dispatches an event. The manner in which the event is dispatched depends upon the type of the
   * event and the type of the event's source object.
   *
   * @exception NullPointerException If event is null.
   */
  protected void dispatchEvent(AWTEvent evt) {
    currentEvent = evt;

    if (evt instanceof InputEvent) lastWhen = ((InputEvent) evt).getWhen();
    else if (evt instanceof ActionEvent) lastWhen = ((ActionEvent) evt).getWhen();
    else if (evt instanceof InvocationEvent) lastWhen = ((InvocationEvent) evt).getWhen();

    if (evt instanceof ActiveEvent) {
      ActiveEvent active_evt = (ActiveEvent) evt;
      active_evt.dispatch();
    } else {
      Object source = evt.getSource();

      if (source instanceof Component) {
        Component srccmp = (Component) source;
        srccmp.dispatchEvent(evt);
      } else if (source instanceof MenuComponent) {
        MenuComponent srccmp = (MenuComponent) source;
        srccmp.dispatchEvent(evt);
      }
    }
  }
Ejemplo n.º 2
0
  public void setActivo(boolean val) {
    glass.setVisible(val);
    setVisible(val);
    JLayeredPane.getLayeredPaneAbove(glass).moveToFront(glass);

    if (val) {
      synchronized (syncMonitor) {
        try {
          if (SwingUtilities.isEventDispatchThread()) {
            EventQueue theQueue = getToolkit().getSystemEventQueue();
            while (isVisible()) {
              AWTEvent event = theQueue.getNextEvent();
              Object source = event.getSource();

              if (event instanceof ActiveEvent) {
                ((ActiveEvent) event).dispatch();
              } else if (source instanceof Component) {
                ((Component) source).dispatchEvent(event);
              } else if (source instanceof MenuComponent) {
                ((MenuComponent) source).dispatchEvent(event);
              } else {
                System.out.println("No se puede despachar: " + event);
              }
            }
          } else {
            while (isVisible()) {
              syncMonitor.wait();
            }
          }
        } catch (InterruptedException ignored) {
          System.out.println("Excepción de interrupción: " + ignored.getMessage());
        }
      }
    } else {
      synchronized (syncMonitor) {
        setVisible(false);
        glass.setVisible(false);
        syncMonitor.notifyAll();

        eliminarDelContenedor();
      }
    }
  }