2 Stimmen

Erkennen, ob das FocusEvent einer Komponente verloren oder gewonnen wurde

Ich implementiere eine EventQueue und werde benachrichtigt, wenn AWTEvents gesendet werden. Ich warte, bis Instanzen von FocusEvent an die dispatchEvent-Methode gesendet werden.

Das FocusEvent selbst hat keine Methode, um zu fragen, ob der Fokus der Komponente gewonnen oder verloren wurde. Die Methode paramString gibt einen String zurück, in dem die Information steht, aber ich möchte den String nicht hacken oder parsen. Ein contains-Aufruf kann mir die Antwort geben, aber der zurückgegebene String ist keine Konstante, er könnte sich also in Zukunft ändern.

Die paramString-Methode von FocusEvent ist wie folgt:

 switch(id) {
      case FOCUS_GAINED:
          typeStr = "FOCUS_GAINED";
          break;
      case FOCUS_LOST:
          typeStr = "FOCUS_LOST";
          break;
      default:
          typeStr = "unknown type";
    }
    return typeStr + (temporary ? ",temporary" : ",permanent") +
        ",opposite=" + getOppositeComponent();

Kennen Sie eine andere Lösung für dieses Problem?

2voto

Paul Tomblin Punkte 172816

Was ist falsch an "evt.getID()"? Es gibt zurück FOCUS_LOST o FOCUS_GAINED ?

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X