Designfrage: Daten einlesen und Fortschrittsdialog anzeigen

Status
Nicht offen für weitere Antworten.
G

Gast

Gast
Hallo!

Ich schreibe gerade ein Programm, das diverse Daten einlesen soll. Dabei soll ein Dialog mit einem Fortschrittsbalken und einem Abbruch-Button angezeigt werden. Der Benutzer sollte die Möglichkeit haben mittels Abbruch-Button den Lesevorgang abzubrechen, nicht aber irgend welche anderen Programmfunktionen zu aktivieren.

Nun habe ich mir gedacht, dass ich das folgendermassen machen könnte:

(1) Ein modaler Dialog zeigt den Fortschritt an. Dadurch wäre das Programm blockiert und der Benutzer kann nur mehr warten bis der Lesevorgang beendet ist oder den Abbruch-Button drücken. Der Dialog schliesst sich automatisch, wenn der Fortschrittsbalken seinen Maximalwert erreicht hat.

(2) Die Leseoperation müsste dann als Thread realisiert werden. Den Fortschrittsbalken könnte man mittels Observer-Pattern updaten.

Da ich noch wenig Erfahrung mit solchen Dingen habe, habe ich noch zwei Fragen:

(1) Ist das Design so ok, oder gibt es einen besseren Weg.
(2) Wenn bei der Leseoperation ein Fehler auftritt, dann würde der modale Dialog ja weiterhin alles blockieren. Brauche ich da eventuell noch einen 2. Thread, der den Dialog und den Lesevorgang startet und auf den das Hauptprogramm wartet. Oder wie könnte man das lösen?
 

krey

Aktives Mitglied
Wenn es einen Fehler gibt wird ja eine Exception geworfen! Damit kannst du den Dialog ja disposen. Außerdem kannst du gucken wie groß die Datei ist und schaun wieviele Bytes bereits gelesen sind, das in Relation stellen und demnach deine Bar mit setValue über einen Thread setzen lassen. Dann kann ein Thread die Daten lesen und ein anderer die Bar zeichnen. Dem zeichner würde ich weniger Priorität zuteilen da du damit resourcen verballerst :) hauptsache klicki bunti ne *gg* Naja auf jeden fall solltest du dir mal die Prioritäten und ThreadGroup angucken.

Naja ich hab ne Menge getrunken, morgen Schule und geh ma pennen. N8
Grüße, Martin
 

sliwalker

Top Contributor
hoi,

bin ich jetzt besoffen oder ist das Programm nicht zwingend unterbrochen, wenn Du das mit einem modalen Dialog machst? Es wartet doch dann auf eine Eingabe vom Benutzer. "modal == Pflichtantwort" (oder vertu ich mich jetzt?)

Aber ein ganz normales selbstgeschirebenes Fenster erfüllt da ebenfalls seinen Zweck ;)

greetz
SLi
 
G

Guest

Gast
Hallo!

Danke für die Antworten!

sliwalker hat gesagt.:
bin ich jetzt besoffen oder ist das Programm nicht zwingend unterbrochen, wenn Du das mit einem modalen Dialog machst? Es wartet doch dann auf eine Eingabe vom Benutzer. "modal == Pflichtantwort" (oder vertu ich mich jetzt?)

Da hast Du schon recht. Aber in meinem Fall erreiche ich dadurch das gewünschte Verhalten, nämlich

(1) Der Benutzer kann zwar den Lesevorgang unterbrechen, kann aber nicht mit den Menüs des Hauptfensters herumspielen.
(2) Ist der Lesevorgang abgeschlossen (d.h. der Fortschrittsbalken erreicht sein Maximum), dann beendet sich der Dialog selbst und der User kann ganz normal weiter arbeiten.

Doch genau da liegen auch meine Bedenken, weil ich quasi einen modalen Dialog zur Threadsynchronisation "missbrauche". Ich denke, dass es da sicher was Besseres gibt. Mir ist aber leider nichts Anderes eingefallen :(
 
B

Beni

Gast
Also ich hätte da keine Bedenken :wink:
Mit einem "try{...}finally{...}" um deinen Algorithmus könntest du den Dialog im finally-Block garantiert schliessen (dieser Block wird immer aufgerufen, auch wenn eine Exception auftritt).
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
G Designfrage/Objektorientierung Java Basics - Anfänger-Themen 19
J Einfache Designfrage Java Basics - Anfänger-Themen 4
S Designfrage zu mutable and immutable Java Basics - Anfänger-Themen 23
B Designfrage Java Basics - Anfänger-Themen 2
D Designfrage, mal wieder ^^ Java Basics - Anfänger-Themen 7
H Designfrage: Welche Liste? Java Basics - Anfänger-Themen 3
S designfrage Java Basics - Anfänger-Themen 7
haemi Designfrage - Strategiemuster. Java Basics - Anfänger-Themen 6
K Interface Designfrage Java Basics - Anfänger-Themen 12
S Designfrage: Packageverwaltung Java Basics - Anfänger-Themen 3
T Designfrage Swing Java Basics - Anfänger-Themen 2
T Unvollständige Daten in der TableView Java Basics - Anfänger-Themen 8
S Daten aus Import Datei auslesen und sortieren Java Basics - Anfänger-Themen 2
A Daten aus einer HashMap aus einer DB speichern und mit neuen Werten vergleichen Java Basics - Anfänger-Themen 8
Mady Daten von JList & Combobox in JTable adden Java Basics - Anfänger-Themen 2
M Daten aus errechneter Methode in Datenbank(SQLite) schreiben Java Basics - Anfänger-Themen 60
W Daten in Echtzeit übernehmen Java Basics - Anfänger-Themen 5
Z Java ArrayList speichert falsche Daten ab bzw. gibt falsche Daten aus? Java Basics - Anfänger-Themen 42
M Daten aus .txt Datei einlesen und weiterverarbeiten Java Basics - Anfänger-Themen 80
I H2 Datenbank starten / Daten in File speichern Java Basics - Anfänger-Themen 25
M Mehrere Daten/ Variablen Speichern Java Basics - Anfänger-Themen 9
E fehlermeldung bei richtigen login daten Java Basics - Anfänger-Themen 7
C Java Funktion: externe Daten vom Internet einbinden Java Basics - Anfänger-Themen 2
P Schiebefix - ArrayList überschreibt Daten Java Basics - Anfänger-Themen 3
S Daten/Klassen/Packages richtig updaten!? Java Basics - Anfänger-Themen 2
E Wie gebe ich alle Daten zwischen zwei Zeitpunkten aus? Java Basics - Anfänger-Themen 2
H Daten aus einer Datei in eine Liste speichern Java Basics - Anfänger-Themen 23
M Tabellen- Daten laden Java Basics - Anfänger-Themen 2
A Klasse um daten zu einlesen Java Basics - Anfänger-Themen 26
A Literale für primitive Daten Typen Java Basics - Anfänger-Themen 4
N Zwei Daten (Datum) miteinander vergleichen, abspeichern, laden Java Basics - Anfänger-Themen 4
A Daten auslesen/vergleichen Java Basics - Anfänger-Themen 3
D Sportwetten Daten Atomatisch analysieren um optimale Strategie zu erhalten Java Basics - Anfänger-Themen 6
S Java Daten in Excel speichern Java Basics - Anfänger-Themen 1
S Daten speichern, ohne Datenbank Java Basics - Anfänger-Themen 8
L Daten aus ArrayList in Datenbank durchsuchen Java Basics - Anfänger-Themen 5
Shallty Daten speichern und ändern? Java Basics - Anfänger-Themen 32
M Sqlite table löschen und daten einfügen Java Basics - Anfänger-Themen 5
S Binäre-Suche bei unsortierten Daten Java Basics - Anfänger-Themen 7
N Was passiert wenn wir Daten auf der Festplatte abspeichern wollen? bzgl. BufferStreams Java Basics - Anfänger-Themen 9
T Daten von Objekten speichern Java Basics - Anfänger-Themen 7
A Minesweeper - Daten Java Basics - Anfänger-Themen 46
A Eingelesene Daten in Array(Liste) abspeichern? Java Basics - Anfänger-Themen 18
S Daten aus zwei Verschiedenen Tabellen in eine ArrayListe Java Basics - Anfänger-Themen 4
WPS1000 Input/Output Wie aktiviere ich den Daten Transfer von der RS232 in meine Java Applikation Java Basics - Anfänger-Themen 2
R Eigenes Protokoll zur Übermittlung von Daten zum Webserver? Java Basics - Anfänger-Themen 4
A Reader wohin werden Daten gespeichert? Java Basics - Anfänger-Themen 7
M Erste Schritte CSV-File einlesen und Daten verarbeiten Java Basics - Anfänger-Themen 5
S Daten aus eigenständiger .class-Datei abrufen Java Basics - Anfänger-Themen 1
E Daten dem Super Aufruf übergeben Java Basics - Anfänger-Themen 3
M jTabel mit Daten Füllen Java Basics - Anfänger-Themen 5
M Wie erzeuge ich die Differenz von zwei Daten in Stunden?? Java Basics - Anfänger-Themen 2
S Daten lesen und speichern Java Basics - Anfänger-Themen 26
S JTable mit Daten füllen Java Basics - Anfänger-Themen 7
L Java Programm zum Auswerten von Daten Java Basics - Anfänger-Themen 11
H Passwortmanager, Sicherheit der Daten Java Basics - Anfänger-Themen 12
G Best Practice Wie große "Tabellen" effizient durchsuchen und Daten händeln? Java Basics - Anfänger-Themen 15
U Daten aus Datei einlesen Java Basics - Anfänger-Themen 4
M Best Practice Daten-Import /Trabsfomration aus Textdatei Java Basics - Anfänger-Themen 12
R JTable Suchfunktion mit SQL Daten Java Basics - Anfänger-Themen 2
E Daten gehen nicht in Datenbank Java Basics - Anfänger-Themen 14
M Erste Schritte Speichern von mehreren Daten Java Basics - Anfänger-Themen 3
J Daten einer Textdatei in ein JTable importieren. Java Basics - Anfänger-Themen 3
F Daten von Thread an den aufrufenden zurückgeben Java Basics - Anfänger-Themen 22
C Endlosschleife bei füllen von Daten im JTable Java Basics - Anfänger-Themen 5
N Erste Schritte Dedicated Server \ Senden und Empfangen von Daten/Befehlen Java Basics - Anfänger-Themen 2
A Probleme beim zykl. aktulisieren von Daten in JTable Java Basics - Anfänger-Themen 3
D NPE beim laden von Daten aus MySQL Java Basics - Anfänger-Themen 9
P Einlesen von Daten via BufferedReader Java Basics - Anfänger-Themen 4
P Methoden ausgelesene (CSV-) Daten in Liste einer anderen Klasse einlesen Java Basics - Anfänger-Themen 0
F Daten aus Excel-Tabelle in Java importieren Java Basics - Anfänger-Themen 15
F Http Post von mehreren Daten Java Basics - Anfänger-Themen 5
F Daten auf Webserver laden - wiederholen bei Fehler Java Basics - Anfänger-Themen 0
W Best Practice problemabhängige Persistentmachung von Daten Java Basics - Anfänger-Themen 6
P Daten von Internetseite auslesen Java Basics - Anfänger-Themen 10
N Daten/Formular per POST an Firefox/Browser senden Java Basics - Anfänger-Themen 7
D Daten mit Apache POI in eine Excel Datei schreiben Java Basics - Anfänger-Themen 5
T JTable Daten aus txt datei Java Basics - Anfänger-Themen 3
T printf Daten aus der Tabelle in Excel übernehmen Java Basics - Anfänger-Themen 5
P zweidimensionales Array anlegen und mit DB-Daten füllen Java Basics - Anfänger-Themen 14
V Einlesen von Daten Java Basics - Anfänger-Themen 8
J TableView zeigt keine Daten an Java Basics - Anfänger-Themen 14
J Daten im Programm speichern Java Basics - Anfänger-Themen 14
N Interface Daten einem Implementierten Interface zuweisen Java Basics - Anfänger-Themen 37
O Probleme mit CSV Daten Java Basics - Anfänger-Themen 10
M Arrays: Trennung von Daten und Darstellung Java Basics - Anfänger-Themen 1
S Daten aus Array in Klasse übertragen Java Basics - Anfänger-Themen 12
M Wie sicher sind Daten im Java Programm? Java Basics - Anfänger-Themen 9
R Daten via Post an php Script senden Java Basics - Anfänger-Themen 1
B Probleme bei "Daten in CSV File schreiben". Java Basics - Anfänger-Themen 9
C Datei mit Daten einlesen und höchsten wert der zweiten Spalte ermitteln Java Basics - Anfänger-Themen 1
W (XML/XSL) Daten aus Eclipse in eine Klasse Laden. Java Basics - Anfänger-Themen 1
I Daten speichern ohne Datenbank Java Basics - Anfänger-Themen 20
D Daten von einem int in einen string Java Basics - Anfänger-Themen 5
L Daten aus Array Feld löschen Java Basics - Anfänger-Themen 2
T Input/Output Daten/Objekte einfach speichern Java Basics - Anfänger-Themen 5
IngoF GUI mit Thread Daten austauschen. Java Basics - Anfänger-Themen 6
S Daten aus anderen Dateien in neue Datei einlesen Java Basics - Anfänger-Themen 3
fLooojava Daten im selben Netzwerk an IP Java Basics - Anfänger-Themen 1
M Junit Tests durchführen, die eine Verbindung zu einer Daten erfordern Java Basics - Anfänger-Themen 3

Ähnliche Java Themen

Neue Themen


Oben