Thread
Katharina
- java
Hallo!
Ich hoffe, jemand kann mir weiterhelfen. Ich habe ein Programm und möchte ihm sagen, warte solange bis eine Eingabe getätigt wurde oder wenn das zu kompliziert ist, warte 20sec. Geht das nur wenn ich einen extra Thread starte oder ist das auch irgendwie anders möglich?
Wäre super, wenn mir jemand weiterhelfen könnte.
Lg Katharina
Hallo,
Ich habe ein Programm und möchte ihm sagen, warte solange bis eine Eingabe getätigt wurde oder wenn das zu kompliziert ist, warte 20sec. Geht das nur wenn ich einen extra Thread starte oder ist das auch irgendwie anders möglich?
Keine Ahnung, was du machen willst.
Bitte erkläre sehr viel genauer.
(Was für ein Programm? Welche Eingabe? Wie bestätigen? Etc.)
Gruß
Slyh
» (Was für ein Programm? Welche Eingabe? Wie bestätigen? Etc.)
ich habe ein Programm in Java geschrieben mit 2Klassen, in dem XML-Dateien in SGML-Dateien konvertiert werden. Framemaker hatte mit bestimmten Konvertierungen Probleme.
In der einen Klasse "gui" habe ich alles bezüglich einer graphischen Oberfläche. Der Benutzer kann sich dort zuerst einen Ordner aussuchen, in dem die zu konvertierenden XML-Dateien liegen, und dann sucht der Benutzer einen Ordner aus, wo die konvertierenden SGML-Dateien abgelegt werden sollen. Es könnte jedoch passieren, dass in dem SGML-Ordner schon der Dateiname vorhanden ist. Und hierbei entsteht mein Problem. Falls die Datei vorhanden ist, kommt ein FEnster, in dem der BEnutzer gefragt wird, "möchten Sie folgende Datei überschreiben". Ich möchte, dass das Programm solange wartet bis der Benutzer ja ("überschreibe") oder nein("nicht überschreiben") eingegeben hat.
Ich hoffe das ist etwas verständlicher.
Lg Katharina
ich denke du suchst sowas wie setTimeout http://selfhtml.teamone.de//javascript/objekte/window.htm#set_timeout
grüsse Tobias
ich denke du suchst sowas wie setTimeout
http://selfhtml.teamone.de//javascript/objekte/window.htm#set_timeout
Die Funktion geht meines Wissens nur in HTML und nicht in Java.
Lg Katharina
Hallo!
Ich habe einen JOptionPane und möchte selber programmieren, was beim Klicken auf "Ja" und "Nein" passieren soll. Weiß jemand, ob das Möglich ist und wenn ja, wie oder sollte ich dann doch lieber einen JDialog verwenden.
Wäre super, wenn ihr mir weiterhelfen könntet. Hab irgendwie im INternet dazu nichts gefunden.
Lg Katharina
Hi,
dann ist wohl (wie Martin schon erwähnt hat) ein modaler Dialog das Mittel deiner Wahl. Die API wird dir genaueres verraten (Klasse: Dialog/JDialog, Stichwort: setModal()).
Gruß
Jimbo
Hallo,
Und hierbei entsteht mein Problem. Falls die Datei vorhanden ist, kommt ein FEnster, in dem der BEnutzer gefragt wird, "möchten Sie folgende Datei überschreiben". Ich möchte, dass das Programm solange wartet bis der Benutzer ja ("überschreibe") oder nein("nicht überschreiben") eingegeben hat.
Was ist denn das für ein Fenster? Ein JFrame oder JDialog? (Kann ja
eigentlich nur ein JFrame sein, da bei einem JDialog das von dir
beschriebene Problem gar nicht auftreten würde.)
Ich würde dir hier von der Verwendung eines JDialog abraten. Außer du
hast ganz spezifische Anforderungen an das Aussehen deines Dialoges.
Für (einfache) Ja/Nein/Abbrechen- und OK-Meldungen existiert die Klasse
javax.swing.JOptionPane. (Du arbeitest doch mit Swing, oder?)
Sie bietet einige statische Fabrikmethoden, die es dir ermöglichen
den angezeigten Dialog zu konfigurieren. Die Methoden beginnen alle
mit "show".
Wenn du bspw. einen ganz simplen Ja/Nein-Dialog haben möchtest,
könntest du folgenden Code verwenden:
JOptionPane.showConfirmDialog(parent,
"Soll Datei XYZ wirklich überschrieben werden?",
"Überschreiben bestätigen",
JOptionPane.YES_NO_OPTION);
(Ungetester Code!)
Die so erzeugten Dialoge haben ein einheitliches Aussehen, und werden
je nach verwendetem Look&Feel möglichst gut an die Abfrage-Dialoge
der jeweiligen Plattform angepaßt. (Die Dialoge sind modal.
D.h., daß die Ausführung des Programms erst weiter geht, wenn das
Dialog geschlossen wurde.)
Ich hoffe das ist etwas verständlicher.
Viel besser, ja. :)
Gruß
Slyh
Hallo,
ihr hattet recht, mein Warnungsfenster war vom Type "Frame" und somit "nicht-modal". Ich habe es jetzt in ein JOptionPane umgewandelt. Es funktioniert :-) Das Programm wartet bis ich Ja/Nein/Abbrechen gedrückt habe. Vielen vielen Dank :-))
Jetz muss ich nur noch hinbekommen, dass das Programm wirklich das macht, was ich möchte, wenn ich "Ja" oder "Nein" betätige, aber so schwer ist das hoffentlich nicht. Wenn das mit JOptionPane nicht möglich ist, werde ich wohl doch JDialog verwenden. Mal sehn.
Nochmal vielen vielen Dank
Katharina
Hallo,
Jetz muss ich nur noch hinbekommen, dass das Programm wirklich das macht, was ich möchte, wenn ich "Ja" oder "Nein" betätige, aber so schwer ist das hoffentlich nicht. Wenn das mit JOptionPane nicht möglich ist, werde ich wohl doch JDialog verwenden. Mal sehn.
Dies wäre eine gute Gelegenheit für dich, dir anzugewöhnen, die Doku
zu lesen. Die Doku zu JOptionPane sagt dir nämlich genau, welche
Bedeutung der Rückgabewert der "show..."-Methoden hat, und wie du damit
auswerten kannst, welcher Button gedrückt wurde.
Du findest in der Doku auch einen Link auf ein Tutorial von Sun.
(In deinem Java-Buch solltest du außerdem eine Beschreibung der Klasse
"JOptionPane" finden.)
Gruß
Slyh
Um ehrlich zu sein, such ich meistens im Internet und schreibe hier erst rein, wenn ich nicht weiterkomme. Im Internet hab ich nach langem Suchen gefunden, dass er einen int-Wert zurückgibt. "0" bei Ja und "1" bei Nein. Habe ein Java2-Buch und da steht leider nichts über JOptionPane drinnen.
Vielen vielen Dank für deine Tipps.
Lg Katharina
Hi Katharina,
Slyh meinte die für eine JDK/SDK-Version spezifischen API-Dokumentationen ("JavaDocs...").
Auch wenn das Internet mittlerweile zu einer beeindruckend umfangreichen Knowledge-Base geworden ist, so sind doch diese _offiziellen_ Dokumente _immer_ die _erste_ Quelle für eine entsprechende Informationsrecherche.
Viele Grüße,
Martin Jung
Hi,
Ich hoffe, jemand kann mir weiterhelfen. Ich habe ein Programm und möchte ihm sagen, warte solange bis eine Eingabe getätigt wurde oder wenn das zu kompliziert ist, warte 20sec. Geht das nur wenn ich einen extra Thread starte oder ist das auch irgendwie anders möglich?
So lange Du _keinen_ weiteren Thread _explizit_ startest, sollte dieses Verhalten eigentlich "automatisch" eintreten.
D.h., nur nachdem der Benutzer entweder "OK" oder "Abbrechen" in einem entsprechenden Dialog (Stichwort: "modal") gedrückt hat, wird das Programm fortgeführt.
Viele Grüße,
Martin Jung