X
xoom4
Ich habe ein JTabbedPane in einem Frame. Der Frame hat ein MenuBar das beim drücken von Ctrl + N ein neuen Tab erstellen soll. Die Tabs haben alle ein JPanel welches ein BorderLayout inne hat. Inerhalb des BorderLayout wird ein JDesktopPane im BorderLayout.CENTER platziert. Dabei gibt es nur ein JDesktopPane das beim wechsel der Tabs von einem Tab zum anderen verschoben werden soll und zwar mittels der Methode remove und add. Zum anfang mal hier das Stückchen Code in Scala, sollte aber für Java coder leicht verständlich sein:
Ich teste ausschliesslich 2 JInternalFrames, also zweimal Ctrl + N drücken und muss feststellen, dass das erste JInternalFrame nicht angezeigt wird. Das passiert übrigens nur wenn ich ganz schnell Ctrl + N drücke, wenn ich es langsam drücke werden beide JInternalFrames angezeigt. Oder wenn ich frame.setMaximum(true) entferne werden auch beim schnell Ctrl + N drücken beide JInternalFrames angezeigt.
Ich finde das ganze sehr merkwürdig und weiss nicht mehr weiter
Code:
class MyTabbedPane extends javax.swing.JTabbedPane {
var index = 0
var desktop = new javax.swing.JDesktopPane
var panels = scala.collection.mutable.Buffer[javax.swing.JPanel]()
def newTab {
if(index > 0) // Wenn zweites Tab, entferne JDesktopPane vom ersten Tab
panels(index - 1).remove(desktop)
// Hier wird das JDesktopPane hinzugefügt bzw. verschoben.
panels += new javax.swing.JPanel(new java.awt.BorderLayout) {
add(desktop, java.awt.BorderLayout.CENTER)
}
insertTab("Tab " + (index + 1), null, panels(index), "", index)
var frame = new javax.swing.JInternalFrame("IFenster " + (index + 1), true, true, true)
desktop.add(frame)
frame.show
frame.setBounds(0 * index, 0, 200, 200)
frame.setMaximum(true) // <- Diese Methode macht probleme.
index += 1
}
}
Ich teste ausschliesslich 2 JInternalFrames, also zweimal Ctrl + N drücken und muss feststellen, dass das erste JInternalFrame nicht angezeigt wird. Das passiert übrigens nur wenn ich ganz schnell Ctrl + N drücke, wenn ich es langsam drücke werden beide JInternalFrames angezeigt. Oder wenn ich frame.setMaximum(true) entferne werden auch beim schnell Ctrl + N drücken beide JInternalFrames angezeigt.
Ich finde das ganze sehr merkwürdig und weiss nicht mehr weiter

Zuletzt bearbeitet von einem Moderator: