/ Forside / Teknologi / Udvikling / Java / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
Java
#NavnPoint
molokyle 3688
Klaudi 855
strarup 740
Forvirret 660
gøgeungen 500
Teil 373
Stouenberg 360
vnc 360
pmbruun 341
10  mccracken 320
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.



Søg
Reklame
Statistik
Spørgsmål : 177511
Tips : 31968
Nyheder : 719565
Indlæg : 6408590
Brugere : 218887

Månedens bedste
Årets bedste
Sidste års bedste