public void windowOpened(WindowEvent e){} public void windowClosing(WindowEvent e){ dispose(); System.exit(0);} public void windowClosed(WindowEvent e){} public void windowIconified(WindowEvent e){} public void windowDeiconified(WindowEvent e){} public void windowActivated(WindowEvent e){} public void windowDeactivated(WindowEvent e){}
public void mouseReleased(MouseEvent e){} public void mousePressed(MouseEvent e){} public void mouseExited(MouseEvent e){} public void mouseEntered(MouseEvent e){} public void mouseClicked(MouseEvent e) { new JPop(this, "MyPop", e.getX(), e.getY()); } }
hmmm... Det man gør er at sætte det "usynligt" og lade garbage collectoren fjerne det når den engang når dertil.
Hvis du tilføjer følgende kode til din actionListener burde det derfor virke som forventet:
reol.this.setVisible(false); // Gemmer vinduet. reol.this.dispose(); // Frigiver winduet (der er lånt af OS)
Herefter skal du så bare sørge for at du ikke referer til det andre steder fra, hvis du altså vi have det fjernet af garbagecollectoren.
Hygge /Dennis
Synes godt om
Slettet bruger
02. december 2002 - 12:33#7
(Hmmm... Første gang jeg bruger det her, så jeg kom til at ligge mit svar som kommentar. For at undgå at du ikke bliver gjort opmærksom på at jeg har svaret ligger jeg lige dette "svar": Se ovenfor!)
Den vil ikke bruge "dispose()" reol.java:32: cannot resolve symbol symbol : method dispose () location: class reol
Synes godt om
Slettet bruger
02. december 2002 - 13:21#9
Beklager... Det var mig der ikke havde læst din kode ordentlig. Du har ret.
Problemet er at der ikke er noget der binder din "reol" klasse og din "JPop" klasse sammen. Knappen ligger på "reol" og den forsøger at lukke en "JPop", men den kender ikke til den. Løsningerne her er mange ;-) :
1) Du kan slå de to klasser sammen, så du laver en klasse der extender en JDialog og laver et JPanel som den "putter på sig selv". Det JPanel skal så indeholde bl.a. knappen fra før, og nu vil du kunne kalde dispose() og setVisible(false) på dialogen.
2) Send dialogen med til din "reol" klasse. Enten som parameter til construktoren eller vha. en "set-metode".
Hvilken af de to ovenstående der er "den rigtige løsning" kommer meget an på situationen (ofte vil man slet ikke vælge at lade sine klasserne extende Swing klasserne (fx. JPanel, JWindow, JFrame og JDialog), men i stedet bare holde dem som variable i sine egne klasser.
Hygge /Dennis
Synes godt om
Ny brugerNybegynder
Din løsning...
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.