Andi B.
25-09-2003, 20:49
Hallo Leute,
ich bin noch ziemlich am Anfang von Java. Falls ich etwas dummes schreibe, bitte nicht böse sein.
Ich habe folgende Frage.
Wenn man einem JFrame ein neues JPanel zuweist, jedoch auf dem alten JPanel elemente enthalten waren(buttons oder textfelder....) werden die nicht gelöscht.
Mein Kollege hat mir da jetzt empfohlen einen String array anzulegen, dem alle Komponenten vom vorherigen JPanel übergeben werden; abprüfen zur welcher Instantz die Komponenten gehören und demnach zu löschen.
Gut, das klappt. Aber schön ist das nicht! Außerdem, was ist, wenn Komponenten nicht von der Klasse JPanel abegleitet wurden???
Hier ist der Quelltext.......
Component[] cmp = mainframe.getContentPane().getComponents();
for (int i = 0; i < cmp.length; i++)
{
if (cmp[i] instanceof JPanel)
mainframe.getContentPane().remove(cmp[i]);
}
mainframe.getContentPane().add(this,BorderLayout.C ENTER);
mainframe.validate();
}
Das muss doch einfacher gehen??!!!
Kann man nicht das ContentPane total neu aufbauen, so, dass alle enthaltenen elemente weg sind?
Danke und Gruß
Andi
ich bin noch ziemlich am Anfang von Java. Falls ich etwas dummes schreibe, bitte nicht böse sein.
Ich habe folgende Frage.
Wenn man einem JFrame ein neues JPanel zuweist, jedoch auf dem alten JPanel elemente enthalten waren(buttons oder textfelder....) werden die nicht gelöscht.
Mein Kollege hat mir da jetzt empfohlen einen String array anzulegen, dem alle Komponenten vom vorherigen JPanel übergeben werden; abprüfen zur welcher Instantz die Komponenten gehören und demnach zu löschen.
Gut, das klappt. Aber schön ist das nicht! Außerdem, was ist, wenn Komponenten nicht von der Klasse JPanel abegleitet wurden???
Hier ist der Quelltext.......
Component[] cmp = mainframe.getContentPane().getComponents();
for (int i = 0; i < cmp.length; i++)
{
if (cmp[i] instanceof JPanel)
mainframe.getContentPane().remove(cmp[i]);
}
mainframe.getContentPane().add(this,BorderLayout.C ENTER);
mainframe.validate();
}
Das muss doch einfacher gehen??!!!
Kann man nicht das ContentPane total neu aufbauen, so, dass alle enthaltenen elemente weg sind?
Danke und Gruß
Andi