ERLEDIGT
NEIN
NEIN
ANTWORTEN
2
2
ZUGRIFFE
1646
1646
EMPFEHLEN
-
Hab ein großes Problem.
Will ein Panel mit einem anderen Panel ersetzen, jedoch wird es mir nicht neu gezeichnet.
//Mit dieser Methode füge ich einfach mal drei Panels zu meinem übergeordneten Panel hinzu.
Code :1 2 3 4 5 6 7 8 9 10
private Panel getPanel() { if (panel == null) { panel = new Panel(); panel.setLayout(new BorderLayout()); panel.add(getPanel1(), java.awt.BorderLayout.NORTH); panel.add(getPanel2(), java.awt.BorderLayout.CENTER); panel.add(getPanel3(), java.awt.BorderLayout.SOUTH); } return panel; }
//Diese Methode setzt mir das Panel panelmiddle mit einem Middlepanel -->Dies ist eine Klasse, die von einem Panel abgeleitet ist und auf der sich verschiedene Grafiken befinden
Code :1 2 3 4 5 6 7
private Panel getPanel2() { if (panelmiddle == null) { panelmiddle = new Middlepanel(); panelmiddle.setLayout(new FlowLayout()); } return panelmiddle; }
Nun möchte ich dieses panelmiddle ersetzen mit einem neuen Panel, dass ich von einer anderen Klasse abgeleitet habe. Dazu rufe ich, nachdem ich auf dem Middlepanel einen Button per Mouse geklickt habe die Methode getscanpanel() auf und diese liefert mir nun eben ein neues Panel zurück und sollte eigentlich das Panel neu zeichnen.
Code :1 2 3 4 5 6 7 8 9
public void getscanpanel() { this.panel.remove(panelmiddle); panel.add(getPanelscan(), java.awt.BorderLayout.CENTER); this.repaint(); panel.repaint(); panel.paint(this.getGraphics()); panel.update(this.getGraphics()); }
//Die Methode getPanelscan() schaut so aus:
Code :1 2 3 4 5 6 7 8 9 10
private Panel getPanelscan() { if (panelmiddle_scan == null) { panelmiddle_scan = new Scanpanel(); this.panelmiddle_scan.setLayout(new FlowLayout()); this.panelmiddle_scan.setVisible(true); this.panelmiddle_scan.repaint(); } return panelmiddle_scan; }
Doch leider passiert hier nichts und das Panel wird nicht ersetzt. Habe schon alles versucht (z.b validate oder sämtliche Sachen mit repaint und komme aber nicht drauf, wieso er mir das nicht updatet. Hoffe ihr könnt mir hier helfen und ich hoffe, die Code Ausschnitte genügen
-
Hab zumindest jetzt mal geschafft, dass das eine Panel verschwindet und das andere auftaucht, allerdings erst wenn ich einmal auf den Rand des Frames klicke (also ihm gewissermaßen einen Resize des Frames vortäusche)
Wie kann ich das machen, dass das neue Panel automatisch erscheint?
mfg
Andy
-
probier mal .setVisible(true), requestFocus() oder moveToFront() aus
Ähnliche Themen
-
Image From Panel to Panel
Von Aprikose im Forum .NET Windows FormsAntworten: 1Letzter Beitrag: 25.09.09, 13:54 -
Problem mit Panel
Von dlooney im Forum .NET Windows FormsAntworten: 3Letzter Beitrag: 15.04.09, 20:29 -
[php-fusion] Panel auf Haupt-Panel linken
Von maka83 im Forum PHPAntworten: 0Letzter Beitrag: 12.04.08, 15:43 -
Panel in JTabbedPane, vom Panel aufs frame zugreifen.
Von che nino im Forum Swing, Java2D/3D, SWT, JFaceAntworten: 2Letzter Beitrag: 08.09.07, 21:00 -
Unterschied: 'setContentPane(panel)' und getContentPane().add(panel);
Von the_skywalker im Forum Swing, Java2D/3D, SWT, JFaceAntworten: 1Letzter Beitrag: 25.01.05, 12:23





Zitieren
Login





