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.
//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
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.
//Die Methode getPanelscan() schaut so aus:
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
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:
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:
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:
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:
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