G
Guest
Gast
Hallo zusammen,
ich habe folgendes, merkwürdiges Problem:
Ich habe mir einen eigenen JDesktopPane geschrieben, auf dem ich beim Start der Anwendung sofort einen JInternalFrame anzeigen lasse.
Öffne ich nun ein zweites JInternalFrame, so wird mir dieses richtig kaskadiert (versetzt und im Vordergrund von dem ersten JInternalFrame) angezeigt. Öffne ich nun ein drittes JInternalFrame, so verschwindet das zweite JInternalFrame hinter dem Fokus des ersten (quasi hinter der Ebene des ersten).
Die folgenden JInternalFrames werden korrekt kaskadiert angezeigt.
Was merkwürdig ist, dass wenn ich nach dem Start der Anwendung mit der Maus auf die Titelleiste des bereits beim Start der Anwendung geöffneten JInternalFrame klicke, werden alle folgendenden geöffneten JInternalFrames korrekt in der Ebene kaskadiert.
Hat jemand dafür eine Erklärung?
Hier mein Code:
Hinweis: Der else-Zweig wird bei der Hinzufügung des "Start"-JInternalFrames durchlaufen.
ich habe folgendes, merkwürdiges Problem:
Ich habe mir einen eigenen JDesktopPane geschrieben, auf dem ich beim Start der Anwendung sofort einen JInternalFrame anzeigen lasse.
Öffne ich nun ein zweites JInternalFrame, so wird mir dieses richtig kaskadiert (versetzt und im Vordergrund von dem ersten JInternalFrame) angezeigt. Öffne ich nun ein drittes JInternalFrame, so verschwindet das zweite JInternalFrame hinter dem Fokus des ersten (quasi hinter der Ebene des ersten).
Die folgenden JInternalFrames werden korrekt kaskadiert angezeigt.
Was merkwürdig ist, dass wenn ich nach dem Start der Anwendung mit der Maus auf die Titelleiste des bereits beim Start der Anwendung geöffneten JInternalFrame klicke, werden alle folgendenden geöffneten JInternalFrames korrekt in der Ebene kaskadiert.
Hat jemand dafür eine Erklärung?
Hier mein Code:
Code:
public void addJInternalFrame(JInternalFrame jifToCheck)
{
boolean isInList = false;
if (frames != null)
{
for (int i = 0; i < frames.size(); i++)
{
JInternalFrame jifInList = (JInternalFrame) frames.get(i);
if (jifInList.getTitle().equals(jifToCheck.getTitle()))
{
isInList = true;
break;
}
}
if (!isInList)
{
//Noch die Layer festlegen
this.add(jifToCheck, JLayeredPane.DEFAULT_LAYER);
cascade();
}
} else
{
this.add(jifToCheck, JLayeredPane.DEFAULT_LAYER);
cascade();
}
}