Kør metode når jframe.dispose() kaldes

Tags:    java

Hej udviklere,

jeg sidder og bøvler lidt med et problem i mit program.

Jeg har et jFrame hvor "hovedprogrammet" kører i, og åbner derfra et nyt jFrame hvor man kan tilføje nogle detaljer. Når man har tilføjet de detaljer det drejer sig om, lukkes jFramet igen - igen problemer der.
Problemet er, at jeg gerne vil opdatere teksten på den knap der åbner det nye jFrame, men kun hvis der rent faktisk blev gemt noget indhold i det nye frame - altså hvis man har brugt "Gem" knappen til at lukke vinduet.

Når man trykker på "Gem", gemmes info til min database, og jeg kalder derefter "dispose()".
Er der nogen som helst mulighed for at kalde en metode fra mit "hovedvindue" samtidig med jeg kalder dispose() ?

Altså:

jFrame1 åbner jFrame2
jFrame2 tilføjer noget info og trykker "Gem"
jFrame2 gemmer info til database og kalder dispose()
jFrame1 ændrer teksten på knappen der åbnede jFrame2, men kun hvis der blev trykket på "Gem" - altså ikke hvis man trykkede på krydset i hjørnet af vinduet.

Håber jeg har gjort mig nogenlunde forståelig..

På forhånd mange tak



4 svar postet i denne tråd vises herunder
0 indlæg har modtaget i alt 0 karma
Sorter efter stemmer Sorter efter dato
Kan du ikke bare lave en metode i dit hovedframe, som ændrer teksten, og herefter kalde den metode, hver gang der trykkes på gem knappen?

Ellers har jeg vist ikke helt forstået spørgsmålet :)



Kan du ikke bare lave en metode i dit hovedframe, som ændrer teksten, og herefter kalde den metode, hver gang der trykkes på gem knappen?

Ellers har jeg vist ikke helt forstået spørgsmålet :)


Har overvejet at lave noget i den stil, men når "Gem"-knappen ligger i et andet frame, kan jeg så stadig godt kalde metoden? har læst noget med super.method(), men synes jeg ikke rigtigt virker..



Du kan lave din egen metode som kalder den metode. F.eks. noget i stil med:
Fold kodeboks ind/udJava kode 

Det var lige den første løsning jeg kunne komme på :)

Forresten kan du kun benytte super, hvis dit andet frame arver fra dit første frame.



Indlæg senest redigeret d. 22.04.2011 17:51 af Bruger #4487
Du kan lave din egen metode som kalder den metode. F.eks. noget i stil med:
Fold kodeboks ind/udJava kode 

Det var lige den første løsning jeg kunne komme på :)

Forresten kan du kun benytte super, hvis dit andet frame arver fra dit første frame.


Tror ikke helt det går det du har skrevet der.. Har lidt svært ved at forklare det..
Det hænger sammen som følger:
Fold kodeboks ind/udJava kode 

Fold kodeboks ind/udJava kode 


Når jeg trykker på "Tilføj detalje" åbner vinduet altså og jeg kan tilføje whatever.. Når jeg så trykker på "Gem", vil jeg gerne have at teksten på "Tilføj detalje" ændres til "Rediger detalje" i stedet for..

Ved ikke om det var lettere at forstå med et kodeeksempel?



EDIT:

Jeg har fået løst problemet nu..

Jeg endte med at lave mit detalje-vindue om til en JDialog i stedet, som jeg så kunne sætte til at være modal med setModal(true).
På denne måde kan jeg stoppe eksekvering af koden i den først fil, indtil dialogen lukkes igen.
Når dialogen så lukkes af den ene eller den anden årsag, kan jeg tjekke om en public boolean værdi er blevet sat i detaljevinduet - denne viser om der er foretaget noget eller ej.



Indlæg senest redigeret d. 23.04.2011 17:07 af Bruger #8773
t