21. december 2008 - 22:53Der er
7 kommentarer og 1 løsning
Swing i shutdownhook
Jeg har lavet et lille program der registrerer forskellige ting, som der bliver gemt i en fil. Denne fil bliver kun opdateret på brugerens ordre, altså alt redigering i informationer ligger i memory indtil brugeren trykker på gem knappen. Den klasse der gemmer i filen registerer om brugeren har indtastet nogle informationer uden at trykke gem. Alt dette har jeg fået til at virke, men jeg har prøvet at lege lidt med at tilføje en shutdownhook til Runtime.getRuntime(). Dette virker også indtil jeg prøver at tilføje noget JOptionPane i denne. Kan man ikke på dette tidspunkt spørge brugeren om han vil gemme inden der lukkes? Ved godt man kan bruge en seperat knap hvor man kan putte dette i eventhandleren, men ville helst have det sådan at man kan bruge "krydset i hjørnet" til at lukke:)
kode der ikke virker: public class minKlasse implements Runnable{
public run(){ try { int svar = JOptionPane.showConfirmDialog(null, "Gem?"); if (answer == JOptionPane.YES_OPTION){ andenKlasse.gem(); } } catch (MinException e){ } } } Kan være der er stavefejl. Det er ikke disse der er problemet. Der kan være stavefejl da jeg ikke lige har koden på mig i skrivende stund.
Shutdown hooks run at a delicate time in the life cycle of a virtual machine and should therefore be coded defensively. They should, in particular, be written to be thread-safe and to avoid deadlocks insofar as possible. They should also not rely blindly upon services that may have registered their own shutdown hooks and therefore may themselves in the process of shutting down. Attempts to use other thread-based services such as the AWT event-dispatch thread, for example, may lead to deadlocks.
jeg ville ikke være vildt overrasket, hvis der også var problemer med Swing !
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.