MediathekView Logo

    MediathekView-Forum

    • Registrieren
    • Anmelden
    • Suche
    • Kategorien
    • Aktuell
    • Tags
    • Beliebt
    • Benutzer
    • Gruppen

    Suchfeld Filter bleibt hängen

    Ideen, Anregungen, Verbesserungen
    2
    5
    578
    Lade mehr Beiträge
    • Älteste zuerst
    • Neuste zuerst
    • Meiste Stimmen
    Antworten
    • In einem neuen Thema antworten
    Anmelden zum Antworten
    Dieses Thema wurde gelöscht. Nur Nutzer mit entsprechenden Rechten können es sehen.
    • ?
      Ein ehemaliger Benutzer zuletzt editiert von Ein ehemaliger Benutzer

      Hallo,

      ich hab im MV 13.1.x (aktuell im 13.1.3) schon mehrfach das Problem gehabt, dass das Textfeld für den Suchfilter rechts oben im Reiter “Filme” hängen bleibt. Das Problem ist nicht leicht reproduzierbar. Meistens klappt es. Aktuell hängt die GUI wieder. Wenn ich den Focus ins Textfeld für die Suche setze, dann kann ich tippen und das Suchergebnis ändert sich (korrekt?). Aber der eingetippte Text wird im Textfeld nicht angezeigt.

      Ich hab grad keine Zeit,/Lust mich in den src einzulesen und zu debuggen, möchte aber auf ein Paradigma der GUI Programmierung hinweisen, das hier verletzt sein könnte. Könnt Ihr mal bitte prüfen, ob hier ein klassischer Multithreading-Fehler vorliegt?

      Ich weiß aus eigener Erfahrung, daß Java Swing GUIs und C++ MFC GUIs sich bei Verletzung des Paradigmas merkwürdig verhalten mit kaum reproduzierbaren Verhalten. Mein Kollege meinte grad gestern wieder, er habe mit JavaFX dasselbe Problem gehabt.

      Kurz gesagt dürfen, und das ist offizielles Paradigma von ORACLE, in Java Swing Updates der Swing-Elemente ausschließlich im Event Dispatch Thread (EDT) erfolgen. Sprich, alles was (aufwendig) rechnet sollte in Threads ausgelagert werden und das Aktualisieren der GUI MUSSSS sich auf den EDT setzen.
      Darf man gerne bei ORACLE nachlesen unter https://docs.oracle.com/javase/tutorial/uiswing/concurrency/dispatch.html

      Stichworte SwingWorker (für Arbeitsthreads) mit Funktion doInBackGround im Hintergrund-Arbeitsthread bzw Funktionen process und done im EDT um GUISachenMachen.

      und Stichwort SwingUtilities.invokeLater(new Runnable…) (Code des Runnable wird garantiert im EDT erfolgen) oder wenn es Spaß macht invokeAndWait, wenn man grad nicht weiß wo man sitzt und sicher gehen will, in den EDT zu kommen.

      Ist nix schlimmes, ist mir auch schon oft passiert (erst aus Unwissenheit und dann aus Faulheit), ist für manche schwer zu glauben - aber ich meins nicht arrogant wenn ich sage: issaberso.

      Danke für MV und Grüße
      K.

      1 Antwort Letzte Antwort Antworten Zitieren
      • D
        DerReisende77 Entwickler zuletzt editiert von

        Wenn du Mal ne suche über den Code laufen lässt werden dich aber die Platform.runLater und SwingUtilities.invokeLater förmlich anspringen. Diese werden/müssen regelmäßig genutzt werden. Desweiteren nutze ich für Swing einen thread checking repaint Manager der in der Regel sofort EDT violations für Swing Recht zuverlässig aufzeigt. JavaFX wirft da von Haus aus exceptions.

        So gesehen wird es schwer anhand deiner Beschreibung den Fehler zu reproduzieren. Was du aber machen kannst ist das Programm mit -d zu starten. Dann ist der Thread checking repaint Manager aktiv und wirft evtl eine exception auf der CLI die weiter helfen könnte.

        Und MFC war/ist die Pest. Das einzige was das wett macht ist die Nutzung von C++

        Open source developers do NOT have to:

        • Make your issue a priority, just because you say so.
        • Give you any sort of "timetable", or explanation for why it´s "taking too long".

        Check your entitlement. Nobody owes you anything.

        ? 1 Antwort Letzte Antwort Antworten Zitieren
        • D
          DerReisende77 Entwickler zuletzt editiert von

          Ansonsten Versuche Mal wenn es hängt mit jmap einen dump zu machen

          Open source developers do NOT have to:

          • Make your issue a priority, just because you say so.
          • Give you any sort of "timetable", or explanation for why it´s "taking too long".

          Check your entitlement. Nobody owes you anything.

          1 Antwort Letzte Antwort Antworten Zitieren
          • ?
            Ein ehemaliger Benutzer @DerReisende77 zuletzt editiert von

            @derreisende77

            Nö, ich werd mich in den src nicht einarbeiten, wie gesagt. Ich glaub Dir auch so, daß Du die EDT-Sache verstanden hast und sie beherzigst. Es roch für mich (ohne src lesen / Ahnung) jedenfalls förmlich nach EDT Problem.

            Vorhin ist bei mir mal übrigens das Textfeld für den Suchbegriff komplett aus der GUI verschwunden und kam auch nicht zurück. Vermutlich war das die böse MFC dll aus einer meiner vcredist Installationen, die das Textfield mit der Pest infiziert hat.

            Ich habe jedenfalls -d als Aufrufparameter bei meinem Startsymbol angefügt und sehe dann ja, ob der EDT checker anschlägt. Vielleicht habe ich ja Glück und kann einen Stacktrace liefern. Mit genau derselben Methode, den repaint Manager auszutauschen, hab ich selbst schon beste Erfahrungen gemacht. Feine Sache:-)

            ? 1 Antwort Letzte Antwort Antworten Zitieren
            • ?
              Ein ehemaliger Benutzer @Gast zuletzt editiert von

              0_1534968166239_Unbenannt.PNG

              Ähnliches Problem jetzt: es wird zwar getippter Text angezeigt, aber Cursor blinkt nicht da wo tippen sondern immer an derselben Stelle…

              1 Antwort Letzte Antwort Antworten Zitieren
              • 1 / 1
              • Erster Beitrag
                Letzter Beitrag

              7
              Online

              5.5k
              Benutzer

              5.0k
              Themen

              32.8k
              Beiträge

              Betrieben mit NodeBB - Impressum