BusyAnzeige einblenden wenn Thread länger als 2sec blokiert?

Status
Nicht offen für weitere Antworten.
J

java.jago

Gast
Hi,

Ich will den Zugriff auf ein BufferedImage wenn es gerade von einem anderen Thread bearbeitet wird für den Swing-Thread blocken wenn dieser das BufferedImage benötigt. Anstatt die GUI zu freezen will ich eine Busy-Anzeige einblenden wenn der Swing-Thread länger als 2sec. nicht auf das BufferedImage zugreifen kann - und auch wieder ausblenden, wenn das BufferedImage wieder zugänglich ist?

Hat jemand ein minimales Code-Beispiel wo z.B. ein Thread ein BufferedImage für eine zufällige Anzahl von Sekunden in Beschlag nimmt, den Swing-Thread der es anzeigen will blockiert und dann besagte Busy-Anzeige einblendet bis es frei wird? Bin ein blutiger Anfänger und bin vor einiger Zeit von .Net zu Java gewechselt :)

Danke,
jago
 
G

Guest

Gast
Hmm, ich habe mir das Beispiel durchgelesen und auch schon vorher einen ähnlichen gelesen. Nur sind diese Sun-Java Tutorials immer so praxisfremd formuliert.

Was ist denn an meiner Definition des Problems unklar? Ich will mit dem Swing-Thread ein BufferedImage anzeigen. Es kann sein, dass das BufferedImage gerade von einem anderen Thread benutzt wird - also Finger weg bis dieser fertig ist. Bis dahin soll der Swing-Thread den User grafisch per Busy-Anzeige unterhalten. Scheint mir doch ein sehr generelles Problem zu sein, oder habe ich irgendetwas unvollständig erklärt?

Danke,
jago
 

Marco13

Top Contributor
Schreib' ein Beispielprogramm, wo du genau sagst "Hier soll gewartet werden". Dann wirst du merken, was daran alles unklar ist.
 

wayne

Bekanntes Mitglied
ich meine zu verstehen, was du machen willst. mein vorschlag wäre es, quasi eine semaphore einzubauen auf die alle threads zugreifen können. das ließe sich realisieren indem du eine klasse mit einer statischen boolschen variablen machst. diese wird von dem thread, welcher das bild unter umständen bearbeitet und dadurch nicht lesbar macht, gesetzt. wenn deine grafische anzeige auf das bild zugreifen will, frägt sie diese variable ab ob sie gesetzt ist. wenn nein, kannst du das bild anzeigen, wenn ja, wartest du aktiv. aktiv warten heißt, daß du alle paar millisekunden (50+) die variable abfrägst, bis sie wieder zurückgesetzt worden ist. dabei zählst du mit, wie lange du schon wartest. wenn die wartezeit dann > 2 sekunden ist, zeigst du einen entsprechenden dialog an.

diese lösungsmöglichkeit lässt sich natürlich noch ausbauen, dahingehend, daß die klasse mit der statischen variablen eine art warteschlange wird, also deinen anderen klassen/threads auch mitteilt, ob sie nun dran sind oder zuerst eine andere klasse/thread lesen darf. je nachdem, wer zuerst interesse am status des bildes angemeldet hat. also eine FIFO-liste.

ich denke/hoffe, daß damit jedenfalls dein problem gelöst sein sollte.

viel erfolg

wayne
 
J

java.jago

Gast
Ich dachte zwar, dass jemand für sowas schon eine getestete Lösung hat - aber ich denke mal ich werde es dann so realisieren wie ihr vorgeschlagen habt.

Danke,
jago
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
J Dateiname im Label einblenden AWT, Swing, JavaFX & SWT 4
L Swing Benachrichtigung einblenden AWT, Swing, JavaFX & SWT 2
stylegangsta JLabel durch Klick auf JButton einblenden AWT, Swing, JavaFX & SWT 16
M Java FX Innerhalb einem FXML-Dialog weiteren FXML-Dialog einblenden AWT, Swing, JavaFX & SWT 3
R Label in den Vordergrund einblenden AWT, Swing, JavaFX & SWT 5
H Swing Symbol in Taskleiste dynamisch aus- bzw. einblenden AWT, Swing, JavaFX & SWT 14
H Swing HUD in externes Programm einblenden AWT, Swing, JavaFX & SWT 7
P verschiedene JPanels einblenden je nach auswahl AWT, Swing, JavaFX & SWT 2
L JWindows einblenden/animieren AWT, Swing, JavaFX & SWT 19
M JPanel einblenden AWT, Swing, JavaFX & SWT 5
G Text zur Laufzeit einblenden? AWT, Swing, JavaFX & SWT 2
T Auf Einblenden von Scrollbars reagieren AWT, Swing, JavaFX & SWT 9
S Frame "einblenden" AWT, Swing, JavaFX & SWT 5
J Spalte in JTable aus- und wieder einblenden AWT, Swing, JavaFX & SWT 10
tommybalbor JavaFx Anwendung klappt nicht für macOs Nutzern, wenn ich zwei dependecies bei maven hinzufüge AWT, Swing, JavaFX & SWT 6
G Problem mit der Anzeige von jLabel. Unlesbar wenn der Text geändert wird. AWT, Swing, JavaFX & SWT 28
berserkerdq2 Wie füge ich ein Bild in javafx mit dem Scenebuilder ein, das automatisch mitgezogen wird, wenn das Fenster vergrößert wird oder Vollbildmodus AWT, Swing, JavaFX & SWT 6
TheSepp Fenster um x Pixel bewegen, wenn man auf dem Knopf drückt AWT, Swing, JavaFX & SWT 10
_user_q Objekt.setSelected(false), wenn es nicht mehr fokussiert wird AWT, Swing, JavaFX & SWT 2
N JFrame löscht alles, wenn groß gemacht AWT, Swing, JavaFX & SWT 9
H MouseAdapter Klasse nutzen wenn eigene Klasse bereits von anderer erbt AWT, Swing, JavaFX & SWT 13
G JavaFX Wert aus DB lesen, wenn erfolgreich automatisch eine fxml laden, möglich? AWT, Swing, JavaFX & SWT 2
Davee JavaFX ListView = null wenn ich sie in Laufzeit ändern will! AWT, Swing, JavaFX & SWT 16
S Event Handling Neu zeichnen nur wenn Berechnung fertig ist AWT, Swing, JavaFX & SWT 4
CptK windowClosed() nur aufrufen, wenn Fenster nicht über Button geschlossen wird AWT, Swing, JavaFX & SWT 1
VPChief Buttons Reagieren erst wenn ich Fenster minimiere AWT, Swing, JavaFX & SWT 4
Cromewell JavaFX ImageView vergößern wenn hovered AWT, Swing, JavaFX & SWT 2
Drachenbauer Hauptfenster erhält schmale Streifen rechts unt unten, wenn ich einen JDialog hinzufüge. AWT, Swing, JavaFX & SWT 19
ralfb1105 JavaFX ProgressIndicator Meldung wenn Task failed AWT, Swing, JavaFX & SWT 5
C JTextField Inhalt mit Maus selektieren wenn disabled AWT, Swing, JavaFX & SWT 2
L JavaFX Anderer Text, wenn kein Platz ist. AWT, Swing, JavaFX & SWT 1
K Swing JScrollPane wird nicht angezeigt wenn man Components darstellt. AWT, Swing, JavaFX & SWT 2
S JavaFX Fenster aufkommen lassen, wenn mit der Maus über bestimmten Bereich fahren AWT, Swing, JavaFX & SWT 1
richis-fragen JTree +/- verschwidet wenn Knoten keine Kinder hat... AWT, Swing, JavaFX & SWT 6
M Aktion ausführen wenn ein JRadiobutton deselektiert wird. AWT, Swing, JavaFX & SWT 3
J Event Handling Button "enablen" wenn Eingaben in Textfeldern korrekt sind AWT, Swing, JavaFX & SWT 1
F Event wenn Maus eine JList verlässt AWT, Swing, JavaFX & SWT 13
E [JavaFX]Wenn felder belegt dann Meldung Verwerfen? AWT, Swing, JavaFX & SWT 2
B Swing JButton deaktivieren, wenn nicht alle JTextFields ausgefüllt sind. AWT, Swing, JavaFX & SWT 2
G Swing Wenn ich mein JFrame Fenster vergrößere die Inhalte anpassen AWT, Swing, JavaFX & SWT 1
T KeyListener funktioniert nicht wenn ich ein JButton hinzufüge AWT, Swing, JavaFX & SWT 1
Thallius Wer oder was bestimmt welches Frame toFront kommt wenn ein anderes geschlossen wird? AWT, Swing, JavaFX & SWT 8
D JavaFX Erkennen wenn eine Anwendung geschlossen wird und etwas tun? AWT, Swing, JavaFX & SWT 4
C SWT MenuBar & MenuItems Fokus wenn F10 unterdrücken/entfernen AWT, Swing, JavaFX & SWT 9
J JTabbedPane Vollbild wenn Tabwechsel AWT, Swing, JavaFX & SWT 1
V JScrollBar soll weiterscrollen, wenn Inhalt von JTextArea erweitert wird AWT, Swing, JavaFX & SWT 7
K Swing JScrollPane - JScrollBar anzeigen, wenn Frame verkleinert wird AWT, Swing, JavaFX & SWT 3
M JFreeChart neu zeichnen sich Wenn Jtable sich ändert AWT, Swing, JavaFX & SWT 5
Z Fenster leer, wenn ich ein JTextField erzeuge AWT, Swing, JavaFX & SWT 3
L JDialog - Event wenn Parent größe ändert AWT, Swing, JavaFX & SWT 2
T JavaFX ControlsFX-Notification öffnet nicht wenn kein JavaFX-Fenster offen. AWT, Swing, JavaFX & SWT 1
B Event Handling MouseListener Behält seine Variablen, auch wenn ich ein neus Objekt erstelle AWT, Swing, JavaFX & SWT 2
T SWT SWTBot Test: Dialog soll sich öffnen,wenn button gedrückt AWT, Swing, JavaFX & SWT 3
T SWT Button soll nur sichbar sein,wenn im Textfeld der Focus ist AWT, Swing, JavaFX & SWT 4
A Swing " comboboxes vergl. wenn aus der 1. etwas gewählt wurde ist, es in der 2. nicht mehr sichtbar AWT, Swing, JavaFX & SWT 9
J Swing JFrame slideout, wenn JButton gedrückt wurde AWT, Swing, JavaFX & SWT 0
A Swing GUI mit ComboBox, wenn Item ausgewählt wurde neues GUI AWT, Swing, JavaFX & SWT 7
R Swing getContentPane maximiert sich nicht mit, wenn man das JFrame maxmiert AWT, Swing, JavaFX & SWT 8
V GUI mit Swing -> Wenn IP eingegeben Domain ausgeben AWT, Swing, JavaFX & SWT 15
K JMenuItem-Shortcut WENN Menüleiste verborgen ist AWT, Swing, JavaFX & SWT 4
C Swing MenuItem feuert Action nur wenn disabled AWT, Swing, JavaFX & SWT 2
D 2 GUI-Fenster. 2.Fenster wird nicht aufgebaut, wenn erstes beschäftigt ist. AWT, Swing, JavaFX & SWT 4
S Button (ActionListener) funktioniert nicht, wenn y-Koordinate verändert wird AWT, Swing, JavaFX & SWT 5
C JButton umbennen wenn gedrückt AWT, Swing, JavaFX & SWT 9
Z Swing Wenn JFrame inaktiv - Soundbenachrichtigung bei Aktion AWT, Swing, JavaFX & SWT 2
I swing fenster neu zeichnen, wenn überdeckt AWT, Swing, JavaFX & SWT 8
C AWT Fokus von Component entfernen, wenn kein anderes vorhanden AWT, Swing, JavaFX & SWT 4
C AWT Buttons verschwinden, wenn Fenster Vollbild gesetzt wird AWT, Swing, JavaFX & SWT 38
N JCombobox und Actionlistener Aktion nur ausführen, wenn Useraktion ihn auslöst AWT, Swing, JavaFX & SWT 4
C MouseMotionListener fired keine Events mehr wenn in Button AWT, Swing, JavaFX & SWT 2
R Fensterinhalt erscheint erst, wenn das Fenster verändert wird AWT, Swing, JavaFX & SWT 7
A Swing Bug in Swing? Wenn checkbox disabled reagiert ActionListener nicht AWT, Swing, JavaFX & SWT 5
K JButton nur dann aktivieren, wenn die Mouse 3 Sek. über dem Button bleibt AWT, Swing, JavaFX & SWT 2
N Button akivieren, wenn Tabelle verändert worden ist AWT, Swing, JavaFX & SWT 2
W Swing Bild zeichnen wenn Maus an bestimmter Position ist AWT, Swing, JavaFX & SWT 4
GianaSisters JTable erkennung wenn Text eingefügt AWT, Swing, JavaFX & SWT 3
H Puzzle - Erkennen wenn gelöst (array vergleichen) AWT, Swing, JavaFX & SWT 10
alex_fairytail Swing Textfeld Action wenn geschrieben wird? AWT, Swing, JavaFX & SWT 6
S Swing Panelgröße anpassen wenn Frame maximiert wird AWT, Swing, JavaFX & SWT 2
R JFreeChart aktualisieren wenn sich die Ausgangsdaten ändern AWT, Swing, JavaFX & SWT 8
J Swing Cursor von Child falsch, wenn Parant disabled AWT, Swing, JavaFX & SWT 2
xehpuk Swing JScrollBar wird nicht eingeblendet, wenn JTable befüllt wird AWT, Swing, JavaFX & SWT 4
J Swing Lazy Loading in JTree wenn gescrollt wird AWT, Swing, JavaFX & SWT 3
K JTable wird nicht aktualisiert, wenn Filter gesetzt ist AWT, Swing, JavaFX & SWT 9
M Menübar soll bestehen bleiben, wenn andere Masken geöffnet werden AWT, Swing, JavaFX & SWT 4
0 Swing Drag n' Drop Bug wenn Source und Target gleiche Komponente? AWT, Swing, JavaFX & SWT 4
Dit_ Wenn viele NebenFenster zum Locationsetzen das HauptFenster brauchen AWT, Swing, JavaFX & SWT 2
H Funktion ausführen wenn Button gedrückt wird. AWT, Swing, JavaFX & SWT 2
T Swing JTable - true zurückbekommen, wenn der Cursor in einer Zelle blinkt AWT, Swing, JavaFX & SWT 7
T neuer JFrame öffnet sich erst wenn Methode die dahinerliegt abgeschlossen ist. BUG? AWT, Swing, JavaFX & SWT 4
M JWindow schließen wenn Frame sich ändert AWT, Swing, JavaFX & SWT 2
data89 Komponenten verschwinden von JPanel, wenn ich den HG selbst male - Hilfeeee AWT, Swing, JavaFX & SWT 16
D Swing Spaltenköpfe verschieben sich nicht mit, wenn man an horizontaler Scrollbar zieht AWT, Swing, JavaFX & SWT 9
aze JTable automatisch vergrößern wenn das zugehörige JFrame vergrößert wird AWT, Swing, JavaFX & SWT 13
K Wenn Mauszeiger in der Nähe vom Kreis, soll Kreis an eine andere Stelle springen AWT, Swing, JavaFX & SWT 8
E Graphics2D: altes Objekt löschen, wenn repaint aufgerufen wird AWT, Swing, JavaFX & SWT 7
S Swing [gelöst] GUI-Befehle bleiben wirkungslos, wenn danach was großes gemacht wird. AWT, Swing, JavaFX & SWT 5
B JTable getselectedrow liefert -1 wenn Focus verloren AWT, Swing, JavaFX & SWT 4
S JTable Float Column fuegt automatisch Punkt hinzu wenn man Zahlen eingibt. AWT, Swing, JavaFX & SWT 21
Spot84 scrollbar die linksbündig angezeigt wird nur anzeigen wenn sie gebraucht wird AWT, Swing, JavaFX & SWT 5

Ähnliche Java Themen

Neue Themen


Oben