ERLEDIGT
NEIN
NEIN
ANTWORTEN
2
2
ZUGRIFFE
758
758
EMPFEHLEN
-
Halli hallo,
Es ist cshon wirklich drollig. ich habe eine Anwendung die je nach Berechtigung entsprechende Buttons in diversen Panels anzeigen oder nicht anzeigen soll.
Dafür verwende ich eigetnlich add(Component) bzw remove(Component)
Nun Stelle ich aber fest das das remove nich sonderlich zuverlässig zu sein scheint.
Ein Blick in die Java sourcen offenbart folgende Routine
--------------------------------------------------------------------------
/**
* Removes the specified component from this container.
* @param comp the component to be removed
* @see #add
*/
public void remove(Component comp) {
synchronized (getTreeLock()) {
if (comp.parent == this) {
/* Search backwards, expect that more recent additions
* are more likely to be removed.
*/
Component component[] = this.component;
for (int i = ncomponents; --i >= 0; ) {
if (component[i] == comp) {
remove(i);
}
}
}
}
}
--------------------------------------------------------------------------
Also zunächst verstehe ich nicht warum eigentlich hier einem Component[] als Variable die entsprechende Member zugewiesen wird, zumal diese absolut typengleich ist. allerdings ist dies nciht mein eigentliches Problem.
Die Routine hat in ihrer Fallunterscheidung if (comp.parent == this) die Anweisung zu removen aber sie tut nix, wenn dieses Container nicht das Parent der gegebene Component ist. Soweit so gut.
Aber was kann einen Button der auf einem Panel ist veranlassen nicht den Container auf dem er liegt als parent gelten zu lassen? Denn diese Fallunterscheidung schlägt bei mir fehl und der Button wird nicht removed.
für Hinweise besten Dank im Voraus,
takidoso
-
19.11.04 11:41 #2
Du musst die Componente sich neu initialisieren lassen.
mit Component.validate(); probier das mal aus müsste eigenltich funktionieren.
Greetz Steff
-
ah ich habe meinProblem gefunden,
ich hatte das Panel auf dem der Button liegt abgleitet und da es ein zusammengesetztes ist habe ich die die add-Mehtoden überschrieben (delegiert an das eigetnlcihe Panel wo die Buttons erscheinen sollen) aber vergessen das selbe mit den remove-methoden zu tun.
Meine Güte, das ist immer so eine Sache wenn das ursprüngliche Entwickeln der Anwendung so ewig zurückliegt, da hilft nur Analysieren bis zum letzen Etwas.
takidoso
Ähnliche Themen
-
jquery show/hide und add/remove
Von tequila slammer im Forum Javascript & AjaxAntworten: 1Letzter Beitrag: 23.04.10, 07:39 -
Problem mit der remove Funktion
Von nom im Forum C/C++Antworten: 10Letzter Beitrag: 29.12.07, 14:44 -
List component problem
Von avaz00 im Forum Flash PlattformAntworten: 1Letzter Beitrag: 19.06.07, 18:54 -
create und remove Movieclip
Von suntrop im Forum Flash PlattformAntworten: 6Letzter Beitrag: 13.03.06, 17:55 -
VBA - Problem mit Remove Funktion
Von thekorn im Forum Visual Basic 6.0Antworten: 6Letzter Beitrag: 21.06.04, 10:50





Zitieren
Login





