Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

jframe / jdialog und ihr thread

Empfohlene Antworten

Veröffentlicht

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

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.

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.

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

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."

Archiv

Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.