bigredeyes Geschrieben 25. Juli 2005 Teilen Geschrieben 25. Juli 2005 hallo! ich soll rausfinden wie ein jdialog oder jframe zu dem thread kommen in dem sie laufen. implementieren die klassen irgendwo "Thread.Runnable"? wie find ich sowas raus, oder wo steht's? in der java-api hab ich nix vernünftiges gefiunden. danke bigredeyes Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
perdian Geschrieben 25. Juli 2005 Teilen Geschrieben 25. Juli 2005 ich soll rausfinden wie ein jdialog oder jframe zu dem thread kommen in dem sie laufen. implementieren die klassen irgendwo "Thread.Runnable"?Es gibt kein Thread.Runnable. Es gibt das Interface java.lang.Runnable, was logischerweise von jedem Thread implementiert werden muss. Ich verstehe allerdings deine Frage nicht. Willst du nur herausfinden, wie der Thread heisst, indem die Events durchgereicht werden, die ein JDialog bzw. JFrame wirft? Dann erstelle einen Listener, fange ein Event ab und rufe java.lang.Thread#currentThread() auf - damit kommst du an den aktuellen Thread, von dem aus dein Aufruf stattgefunden hat. Willst du jedoch vom Prinzip her verstehen, wie das Swing-Framework an sich funktioniert, und von wo aus welcher Thread gestartet wird, dann bleibt dir nur die Möglichkeit dich duch den Quelltext der javax.swing Klassen zu wühlen, oder aber - was ich für deutlich verständlicher halte - dir auf java.sun.com ein Tutorial zu suchen, in dem genau das Beschrieben wird. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
speedi Geschrieben 26. Juli 2005 Teilen Geschrieben 26. Juli 2005 Wenn ich dich rictig verstanden habe sollst du rausfinden wie z.B. aus einem JFrame ein eigener Thread wird ohne das der Programmierer dies veranlasst. Dafür würde ich mir mal den Quellcode der Klasse JFrame anschauen und nach "Thread" suchen. Wenn du nichts findest dann schaust halt in der super-Klasse von JFrame. Und wenn da auch nichts ist dann wieder in der super-Klasse der super-Klasse. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
bigredeyes Geschrieben 26. Juli 2005 Autor Teilen Geschrieben 26. Juli 2005 Wenn ich dich rictig verstanden habe sollst du rausfinden wie z.B. aus einem JFrame ein eigener Thread wird ohne das der Programmierer dies veranlasst. Dafür würde ich mir mal den Quellcode der Klasse JFrame anschauen und nach "Thread" suchen. Wenn du nichts findest dann schaust halt in der super-Klasse von JFrame. Und wenn da auch nichts ist dann wieder in der super-Klasse der super-Klasse. ja, so mein ich das! hab aber auch nichts vernünftiges gefunden. irgendwie scheint der thread vom himmel zu fallen. dennoch danke! chris Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
perdian Geschrieben 26. Juli 2005 Teilen Geschrieben 26. Juli 2005 Wenn ich dich rictig verstanden habe sollst du rausfinden wie z.B. aus einem JFrame ein eigener Thread wird ohne das der Programmierer dies veranlasst.Aus einem JFrame wird kein eigener Thread. Es gibt zu einem JFrame Objekt einen Thread, in dem die GUI-Events abgearbeitet werden, aber weder wird aus einem JFrame ein Thread, noch ist ein JFrame Thread. hab aber auch nichts vernünftiges gefunden. irgendwie scheint der thread vom himmel zu fallen.Das tut er natürlich nicht, allerdings ist es in der Tat so, dass die Swing- und AWT-Internas, was Threads und EventHandling angeht nicht gerade trivial. Es gehört schon eine gehörige Portion an Wissen über graphische Oberflächen dazu um wirklich zu verstehen, was da eigentlich passiert. Die einfache Antwort auf deine Urpsrungsfrage "Wie kommt ein JFrame zu seinem Thread" kann daher (ohne wirklich intensive und lange Beschäftigung mit den AWT- und Swing-Internas) nur lauten: "Indem vom Framework ein Thread erzeugt wird, in dem die Events des Frames abgearbeitet werden." Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.