AppletTalk.com Forum Index AppletTalk.com
Java discussions newsgroups
 
Archives   FAQFAQ   SearchSearch   MemberlistMemberlist   UsergroupsUsergroups   RegisterRegister 
 ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 

jDesktopPane1 und JInternalFrame

 
Post new topic   Reply to topic    AppletTalk.com Forum Index -> Java Language (German)
View previous topic :: View next topic  
Author Message
HeidiWeber
Guest





PostPosted: Tue May 08, 2007 9:09 pm    Post subject: jDesktopPane1 und JInternalFrame Reply with quote



Hallo,

ich habe mit Netbeans ein jDesktopPane1, ein JInternalFrame und eine
Menüleiste "zusammengeklickt". Auf der Menüleiste habe ich 2 Items.
Eines zum einblenden und eines zum ausblenden des JInternalFrames.

Für das Einblenden mache ich das so: infDatGroesse.setVisible(true).

Somit wird das JInternalFrame ja nur ausgeblendet. Es befindet sich,
mit all seinen Eingaben, noch im Speicher.

Wenn ich das JInternalFrame aber mit Dispose "beende", wird das
JInternalFrame einerseits ausgeblendet UND eben doch auch aus dem
Speicher entfernt? Ist das korrekt?

Wie kann ich solch ein JInternalFrame wieder einblenden? Mit
setVisible(true) geht das ja nicht mehr.

Vielen Dank an euch
cu
Heidi
Back to top
Andreas Eberhöfer
Guest





PostPosted: Wed May 09, 2007 12:01 am    Post subject: Re: jDesktopPane1 und JInternalFrame Reply with quote



HeidiWeber schrieb:
Quote:
Wenn ich das JInternalFrame aber mit Dispose "beende", wird das
JInternalFrame einerseits ausgeblendet UND eben doch auch aus dem
Speicher entfernt? Ist das korrekt?

Was spricht dagegen beim schließen nicht dispose aufzurufen? Was du
suchst ist jif.setDefaultCloseOperation(WindowConstants.HIDE_ON_CLOSE).

mfg
Andreas
Back to top
HeidiWeber
Guest





PostPosted: Fri May 11, 2007 8:13 pm    Post subject: Re: jDesktopPane1 und JInternalFrame Reply with quote



Hi Andreas,

vielen Dank für die Ausführungen.

Wenn man ein JInternalFrame mit Dispose "schließt", kann man es nicht
mit setVisible(true) wieder anzeigen lassen.

Dazu ist folgendes nötig:

boolean hasInternalframe = false;

for(int i = 0; i < jDesktopPane1.getAllFrames().length && !
hasInternalframe; i++) {
// Absichern, daß das JInternalFrame Objekt nicht schon im
// Desktop existiert, weil sonst gibts ne Exception Sad
hasInternalframe = jDesktopPane1.getAllFrames()[i] =infDatGroesse;
}

if(!hasInternalframe) {
jDesktopPane1.add(infDatGroesse);
infDatGroesse.show();
}


Wünsche dir ein schönes Wochenende
cu
Heidi
Back to top
Andreas Eberhöfer
Guest





PostPosted: Fri May 11, 2007 9:07 pm    Post subject: Re: jDesktopPane1 und JInternalFrame Reply with quote

Hallo Heidi,

HeidiWeber schrieb:
Quote:
Wenn man ein JInternalFrame mit Dispose "schließt", kann man es nicht
mit setVisible(true) wieder anzeigen lassen.

Stimmt ich muss zu meiner Schande gestehen, dass ich es nicht mit einem
JDesktopPane probiert habe.
Aber das was du da machst geht wesentlich kürzer:

//Ich geh mal davon aus, dass infDatGroesse dein JInternalframe ist
if(infDatGroesse.getParent() != jDesktopPane1)
{
jDesktopPane1.add(infDatGroesse);
infDatGroesse.setVisible(true);
}


Anscheinend wird durch das dispose ein
jDesktopPane1.remove(infDatGroesse) aufgerufen.
Nur so als Frage, wieso arbeitest du nicht mit dem HIDE_ON_CLOSE und
setVisible(true/false)? Deine ursprüngliche Motivation wegen dem dispose
gibt es ja nicht mehr und du könntest dir solche Hacks wie oben ersparen.

schönes Wochenende
Andreas
Back to top
Display posts from previous:   
Post new topic   Reply to topic    AppletTalk.com Forum Index -> Java Language (German) All times are GMT
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum


Powered by phpBB © 2001, 2006 phpBB Group
SEO toolkit © 2004-2006 webmedic.