ShamaN Geschrieben 18. März 2009 Teilen Geschrieben 18. März 2009 hi, ich will, dass wenn ich auf das x- Zeichen meines Frames klicke, eine Abfrage kommt ob die Daten vorher gespeichert werden sollen oder nicht. Das funktionier in Eclipse auch wunderbar aber wenn ich jetzt das ganze in eine jar Datei packe und diese starte dann passiert gar nix auf den klick des x-Zeichens. Es funktioniert erst wenn ich das package nochmal im gleich verzeichnis habe wie die jar-Datei, obwohl das package selbst in der jar ist. Das ist aber nicht Sinn der Sache. Wo liegt das Problem? Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Dragon8 Geschrieben 18. März 2009 Teilen Geschrieben 18. März 2009 Gibt es irgendwelche Fehlermeldungen? So auf Anhiebt dort ne Fehlermöglichkeit zu finden, ist etwas schwierig. Wenn du keine bekommst, dann versuch mal deine *.jar Datei über die Kommandozeile mit 'java -jar Jar-Datei' aufzurufen. Und dann schau mal ob du auf der Konsole Fehlermeldungen angezeigt bekommst, wenn du auf das 'X' klickst. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
ShamaN Geschrieben 19. März 2009 Autor Teilen Geschrieben 19. März 2009 Danke, die Konsole war sehr hilfreich Ich hatte ungünstigerweise ein rucksack-s in einem Klassennamen verwendet ^^ Jetzt möchte ich das ganze auch für Mac einrichten. Bei Mac lassen sich Programme aber nicht durch einen Klick auf das x (roter Punkt) beenden ( hab ich mir sagen lassen), sondern vielmehr durch die apfeltaste+q bzw. in dem dazugehörigen Menü. Wie kann ich also das jetzt abfangen um davor noch eine Abfrage ob gespeichert werden soll zu erstellen? Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Dragon8 Geschrieben 19. März 2009 Teilen Geschrieben 19. März 2009 Wie das jetzt genau bei einem MAC funktioniert, kann ich dir leider auch nicht sagen. Mehr als mir das kurz angeschaut, habe ich mir das auch noch nicht. Aber eigentlich dürfte das doch in deinem Fall egal sein. Du wirst das Fenster-Schließen doch wahrscheinlich durch einen WindowListener abfangen. Und dieser wird dir auf einem MAC bestimmt die selben Methoden auch auslösen, wenn das Fenster geschlossen wird, egal auf welche Weise. PS: Was ist denn ein Rucksack-S? :confused: Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
ShamaN Geschrieben 19. März 2009 Autor Teilen Geschrieben 19. März 2009 Rucksack-s: ß So hab ich das in der Grundschule gelernt windowClosing fängt aber eben nicht das Event "apfeltaste + q" ab, lediglich das Event durch Anklicken des roten Punktes. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Dragon8 Geschrieben 19. März 2009 Teilen Geschrieben 19. März 2009 Wenn der WindowListener die Tastenkombination "Apfeltaste + Q" wirklich nicht abfängt, dann scheint die Tastenkombination ja eine Art kill-Befehl zu sein. Das dürfte also schwer werden das abzufangen, da deiner Anwendung eigentlich keine Zeit gelassen wird noch Aktionen auszuführen, sondern sie einfach hart beendet wird. Wenn nämlich hingegen deiner Anwendung das Signal gesendet wird, dass sie sich ordnungsgemäß beenden soll, dann wird von Java auch die windowsClosing()-Methode ausgeführt. Das kannst du auch unter Windows testen. Egal welche normalen Mittel du benutzt (rotes X; Rechtsklick Titelleistenicon -> Schließen, Rechtsklick Taskleiste -> Schließen oder ALT + F4) jedesmal wird auch die Methode noch ausgeführt. Wenn du aber im Taskmanager sagst, der Prozess soll gnadenlos sofort beendet werden, wird sie nicht mehr ausgeführt, wie auch, dazu kommt Java ja garnicht. Ich würde also vll hier im Forum im MAC-Abschnitt mal einfach nachfragen, ob es wirklich gängige Praxis unter MAC ist, die Programme mit Apfel + Q zu beenden. 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.