| 
					
							
        
    
        
						
			 | 
			
			
					    
					
        
         
          
         
	
            | gem før lukning ved tryk på [x] i hjørnet ~ Fra : Simon [2700] | 
  Dato :  09-05-05 21:42 |  
  |   
            Hej,
 jeg sidder lige og arbejder på et program til en skoleopgave, jeg benytter 
 mig af JBuilder 2005,
 og den har i min JFrame lavet en constructor,
 
  public MainFrame() {
         try {
             setDefaultCloseOperation(EXIT_ON_CLOSE);
             jbInit();
         } catch (Exception exception) {
             exception.printStackTrace();
         }
     }
 
 det kunne jeg godt tænke mig at ændre i så jeg kan kalde en metode, 
 lukGem(), der skal sørge for at alt bliver gemt osv, inden
 programmet afslutter..
 
 hvad skal jeg gøre for at få dette til at virke ? har prøvet at skifte 
 EXIT_ON_CLOSE setningen ud med en metode
 der skulle udskrive en linie hvorefter System.exit(); blev kaldt, men det 
 resulterede i at metoden blev køre under opstart af programmet :)
 
 Tak for hjælpen
 mvh.Simon
 
 
 
  
            
             |   |   
            
        
 
            
         
           Malte (09-05-2005) 
         
	
            | Kommentar Fra : Malte | 
  Dato :  09-05-05 21:47 |  
  |   
            Simon [2700] wrote:
 > Hej,
 > jeg sidder lige og arbejder på et program til en skoleopgave, jeg benytter 
 > mig af JBuilder 2005,
 > og den har i min JFrame lavet en constructor,
 > 
 >  public MainFrame() {
 >         try {
 >             setDefaultCloseOperation(EXIT_ON_CLOSE);
 >             jbInit();
 >         } catch (Exception exception) {
 >             exception.printStackTrace();
 >         }
 >     }
 > 
 > det kunne jeg godt tænke mig at ændre i så jeg kan kalde en metode, 
 > lukGem(), der skal sørge for at alt bliver gemt osv, inden
 > programmet afslutter..
 > 
 > hvad skal jeg gøre for at få dette til at virke ? har prøvet at skifte 
 > EXIT_ON_CLOSE setningen ud med en metode
 > der skulle udskrive en linie hvorefter System.exit(); blev kaldt, men det 
 > resulterede i at metoden blev køre under opstart af programmet :)
 > 
 > Tak for hjælpen
 > mvh.Simon
 > 
 > 
 > 
 Hmm, længe siden jeg har lavet Swing, men hvad med en finally clause et 
 eller andet stratetisk sted?
  
            
             |   |   
            
        
 
            
         
           Malte (09-05-2005) 
         
	
            | Kommentar Fra : Malte | 
  Dato :  09-05-05 21:48 |  
  |   
            Malte wrote:
 > Simon [2700] wrote:
 > 
 >> Hej,
 >> jeg sidder lige og arbejder på et program til en skoleopgave, jeg 
 >> benytter mig af JBuilder 2005,
 >> og den har i min JFrame lavet en constructor,
 >>
 >>  public MainFrame() {
 >>         try {
 >>             setDefaultCloseOperation(EXIT_ON_CLOSE);
 >>             jbInit();
 >>         } catch (Exception exception) {
 >>             exception.printStackTrace();
 >>         }
 >>     }
 >>
 >> det kunne jeg godt tænke mig at ændre i så jeg kan kalde en metode, 
 >> lukGem(), der skal sørge for at alt bliver gemt osv, inden
 >> programmet afslutter..
 >>
 >> hvad skal jeg gøre for at få dette til at virke ? har prøvet at skifte 
 >> EXIT_ON_CLOSE setningen ud med en metode
 >> der skulle udskrive en linie hvorefter System.exit(); blev kaldt, men 
 >> det resulterede i at metoden blev køre under opstart af programmet :)
 >>
 >> Tak for hjælpen
 >> mvh.Simon
 >>
 >>
 >>
 > Hmm, længe siden jeg har lavet Swing, men hvad med en finally clause et 
 > eller andet stratetisk sted?
 Desuden burde vinduet have en eller anden form for windowClosing event?
  
            
             |   |   
            
        
 
            
         
            Brian (09-05-2005) 
         
	
            | Kommentar Fra : Brian | 
  Dato :  09-05-05 22:02 |  
  |   
            
 "Malte" <You_can_spam_me_here@nmalte.dk> wrote in message 
 news:427fcc83$0$78284$157c6196@dreader1.cybercity.dk...
 > Malte wrote:
 >> Simon [2700] wrote:
 >>
 >>> Hej,
 >>> jeg sidder lige og arbejder på et program til en skoleopgave, jeg 
 >>> benytter mig af JBuilder 2005,
 >>> og den har i min JFrame lavet en constructor,
 >>>
 >>>  public MainFrame() {
 >>>         try {
 >>>             setDefaultCloseOperation(EXIT_ON_CLOSE);
 >>>             jbInit();
 >>>         } catch (Exception exception) {
 >>>             exception.printStackTrace();
 >>>         }
 >>>     }
 >>>
 >>> det kunne jeg godt tænke mig at ændre i så jeg kan kalde en metode, 
 >>> lukGem(), der skal sørge for at alt bliver gemt osv, inden
 >>> programmet afslutter..
 >>>
 >>> hvad skal jeg gøre for at få dette til at virke ? har prøvet at skifte 
 >>> EXIT_ON_CLOSE setningen ud med en metode
 >>> der skulle udskrive en linie hvorefter System.exit(); blev kaldt, men 
 >>> det resulterede i at metoden blev køre under opstart af programmet :)
 >>>
 >>> Tak for hjælpen
 >>> mvh.Simon
 >>>
 >>>
 >>>
 >> Hmm, længe siden jeg har lavet Swing, men hvad med en finally clause et 
 >> eller andet stratetisk sted?
 > Desuden burde vinduet have en eller anden form for windowClosing event?
 
 
 Er det sådan noget som dette du leder efter?
 this.addWindowListener(new WindowAdapter()
 {
 public void windowClosing(WindowEvent e)
 {
 WinClose(e);
 }
 });
 }
 
 
  
            
             |   |   
            
        
 
            
         
            Brian (09-05-2005) 
         
	
            | Kommentar Fra : Brian | 
  Dato :  09-05-05 22:04 |  
  |   
            
 "Malte" <You_can_spam_me_here@nmalte.dk> wrote in message 
 news:427fcc83$0$78284$157c6196@dreader1.cybercity.dk...
 > Malte wrote:
 >> Simon [2700] wrote:
 >>
 >>> Hej,
 >>> jeg sidder lige og arbejder på et program til en skoleopgave, jeg 
 >>> benytter mig af JBuilder 2005,
 >>> og den har i min JFrame lavet en constructor,
 >>>
 >>>  public MainFrame() {
 >>>         try {
 >>>             setDefaultCloseOperation(EXIT_ON_CLOSE);
 >>>             jbInit();
 >>>         } catch (Exception exception) {
 >>>             exception.printStackTrace();
 >>>         }
 >>>     }
 >>>
 >>> det kunne jeg godt tænke mig at ændre i så jeg kan kalde en metode, 
 >>> lukGem(), der skal sørge for at alt bliver gemt osv, inden
 >>> programmet afslutter..
 >>>
 >>> hvad skal jeg gøre for at få dette til at virke ? har prøvet at skifte 
 >>> EXIT_ON_CLOSE setningen ud med en metode
 >>> der skulle udskrive en linie hvorefter System.exit(); blev kaldt, men 
 >>> det resulterede i at metoden blev køre under opstart af programmet :)
 >>>
 >>> Tak for hjælpen
 >>> mvh.Simon
 >>>
 >>>
 >>>
 >> Hmm, længe siden jeg har lavet Swing, men hvad med en finally clause et 
 >> eller andet stratetisk sted?
 > Desuden burde vinduet have en eller anden form for windowClosing event?
 
 P.S Der findes mange flere events som kaldes når der sker noget med 
 vinduet - prøv at læse APIen
 
 Brian 
 
 
  
            
             |   |   
            
        
 
            
         
            Kasper G. Christense~ (10-05-2005) 
         
	
            | Kommentar Fra : Kasper G. Christense~ | 
  Dato :  10-05-05 06:15 |  
  |   
            >> Hmm, længe siden jeg har lavet Swing, men hvad med en finally clause 
 >> et eller andet stratetisk sted?
 
 Det tror jeg ikke nødvendigvis vil virke. Så vidt jeg husker kaldes 
 finally når et objekt bliver fjernet af Garbage-collectoren, men når 
 programmet lukkes, kører denne vist ikke nødvendigvis på alle objekter, 
 så du kan ikke være sikker på at en finally bliver kaldt.
 
 > Desuden burde vinduet have en eller anden form for windowClosing event?
 
 Ja, som Brian skriver, så er tricket at skrive sin egen WindowListener, 
 som gør det man ønsker, man kan evt. helt undlade 
 setDefaultCloseOperation (eller måske sætte den til DO_NOTHING eller 
 hvad det nu hedder -- se API'en), og så selv tilføje System.exit() i sin 
 WindowListener, hvis man vil lukke programmet.
 
 Mvh. Kasper
  
            
             |   |   
            
        
 
            
         
             Malte (10-05-2005) 
         
	
            | Kommentar Fra : Malte | 
  Dato :  10-05-05 06:42 |  
  |   
            Kasper G. Christensen wrote:
 >>> Hmm, længe siden jeg har lavet Swing, men hvad med en finally clause 
 >>> et eller andet stratetisk sted?
 > 
 > 
 > Det tror jeg ikke nødvendigvis vil virke. Så vidt jeg husker kaldes 
 > finally når et objekt bliver fjernet af Garbage-collectoren, men når 
 > programmet lukkes, kører denne vist ikke nødvendigvis på alle objekter, 
 > så du kan ikke være sikker på at en finally bliver kaldt.
 > 
 >> Desuden burde vinduet have en eller anden form for windowClosing event?
 > 
 > 
 > Ja, som Brian skriver, så er tricket at skrive sin egen WindowListener, 
 > som gør det man ønsker, man kan evt. helt undlade 
 > setDefaultCloseOperation (eller måske sætte den til DO_NOTHING eller 
 > hvad det nu hedder -- se API'en), og så selv tilføje System.exit() i sin 
 > WindowListener, hvis man vil lukke programmet.
 > 
 > Mvh. Kasper
 
 Nu rolig! Som det vist fremgik af mine svar var de ment som hjælp til 
 videreforskning for OM, ikke som en facitliste.
  
            
             |   |   
            
        
 
            
         
             Martin Rytter (10-05-2005) 
         
	
            | Kommentar Fra : Martin Rytter | 
  Dato :  10-05-05 16:27 |  
  |   
            Hej
 
 Kasper G. Christensen wrote:
 > Så vidt jeg husker kaldes 
 > finally når et objekt bliver fjernet af Garbage-collectoren, men når 
 > programmet lukkes, kører denne vist ikke nødvendigvis på alle objekter, 
 > så du kan ikke være sikker på at en finally bliver kaldt.
 
 Det er en misforståelse. Du tænker på den finalize() som er defineret 
 for Object. Men kan overskrive den hvis man ønsker der skal ske noget 
 ved garbage collection. Men det er ikke god stil at bygge en masse 
 funktionalitet ind af den vej.
 
 Finally er sprogkonstruktion som bruges i forbindelse med 
 exceptionhandling til at sikre at noget bliver kørt selvom en exception 
 finder sted.
 
 Og til spørgsmålet. Du skal tilføje en WindowListener som det allerede 
 er påpeget. Brug eventuel WindowAdapter som er en implementering af 
 interfacet WindowListener. Dermed slipper du for at tilføje dummy 
 metoder for ting du ikke benytter.
 
 Du tilføjer listeneren med JFrame : addWindowListener(WindowListener l).
 
 Men se på API'et. Og læs søg på Observer pattern hvis du ikke forstå 
 pointen med designet.
 
 -- 
 Martin Rytter, martin at ryt dk, Odense, Denmark.
  
            
             |   |   
            
        
 
            
         
              Simon [2700] (12-05-2005) 
         
	
            | Kommentar Fra : Simon [2700] | 
  Dato :  12-05-05 12:10 |  
  |   
            tak for svar allesammen
 mvh. Simon
 
 > Finally er sprogkonstruktion som bruges i forbindelse med 
 > exceptionhandling til at sikre at noget bliver kørt selvom en exception 
 > finder sted.
 >
 > Og til spørgsmålet. Du skal tilføje en WindowListener som det allerede er 
 > påpeget. Brug eventuel WindowAdapter som er en implementering af 
 > interfacet WindowListener. Dermed slipper du for at tilføje dummy metoder 
 > for ting du ikke benytter.
 >
 > Du tilføjer listeneren med JFrame : addWindowListener(WindowListener l).
 >
 > Men se på API'et. Og læs søg på Observer pattern hvis du ikke forstå 
 > pointen med designet.
 >
 > -- 
 > Martin Rytter, martin at ryt dk, Odense, Denmark. 
 
 
  
            
             |   |   
            
        
 
    
 
					
					 
			 | 
			
				
        
			 |