Grafische Komponenten komplett neu aufbauen (Neukonstruktion)

daflowjoe

Mitglied
Hi,

ich habe ein ziemlich hartnaeckiges Problem oder ein Brett vorm Kopf :)

Ich habe ein Card Layout, welches teilweise ineinander geschachtelt ist. Also wieder in BorderLayout und darin wieder Card etc.
Da ich in den Konfigurationen oefter Daten veraendere, habe ich das Problem. dass ich nach dem Umschalten auf ein anderes Card natuerlich keine aktuellen Daten sehe, da diese in den Konstuktoren initialisiert werden, welche ja beim Programmstart ausgefuehrt werden.

Wie kann ich nun am besten alles reloaden? Ich habe versucht den Panel der alle weiteren Panel enthaelt neu zu initialisieren, da ja dieser als Referenz uebergeben wird.(Oder nicht?)

Klasse NavigationController (die Methode die beim Klick auf ein Navigationselement aufgerufen wird und das Card umschaltet)
Code:
public void getConfigPanel(String name){
ConfigPanel cp = (ConfigPanel)mainPanel.getParent().getParent();
        cp.removeAll();
        cp = new ConfigPanel();
        cp.validate();
        windowMainPanel.add(cp, "config");
}

Der Panel wird dann wie gefreezed. Ich kann nichts mehr anklicken, wenn ich in der Hauptnavi einmal hin und herswitche ist er danach aber leer.
Er wird aber nicht neu aufgebaut. Was ich will ist einfach, dass der gesamte Panel samt aller Unterlemente neu aufgebaut wird, so dass die Konstruktoren aufgerufen werden etc und alles refreshed wird.

Hat jemand eine Idee? :)
 
S

SlaterB

Gast
cp wird mit "config" als eine Card eingefügt?
dann musst du vielleicht auch diese neue Karte zur Anzeige auswählen, wie man das bei CardLayout so macht

außerdem sollte nach diesem add() vor der Auswahl sicher erst noch ein allgemeines validate() stattfinden,
auf cp frisch erstellt musst du das kaum aufrufen, noch weniger bevor es zur GUI eingefügt ist

ein vollständiges Testprogramm ließe viel genauere Aussagen zu, für jederman gleich zu testen
 

daflowjoe

Mitglied
Ich sehe gerade ich habe die Zeile mit dem Umschalten der Card (getCard(name)) nicht mit reinkopiert. Ist aber drin und es wird ja auch korrekt umgeschaltet, wenn ich die vorhergehenden Zeilen entferne.

Das ganze Testprojekt kann ich leider nicht hochladen. Koennte mir ja jemand die Idee klauen :) Ist auch eigentlich schon recht umfangreich, daher will ich die Analyse da auch keinen zumuten :)

Der mainPanel ist der Panel der das Card Layout hat. In dem befinden sich die einzelnen cards. Dieser ist aber auch ein Unterpanel einer Top Navigation, welche auch ein Card Layout verwendet. Ich habe zum Test einfach mal auf den obersten Panel zugegriffen. Wenn ich von der Wurzel alles neu initialisieren koennte, koennte ich das auch performanter in einer tieferen Ebene.

Ich vermute eben einfach, dass das so mit dem neu Initialisieren einfach nicht geht. Ich hatte ein aehnliches Problem als ich einen Panel mit clone korrekt gecloned hatte und diesen dann zum Layout geadded hab. Die Frage ist nur warum geht das nicht? Ich sollte doch einfach den Frame neu initialisieren koennen oder gehen da irgendwelche tieferen Referenzen verloren etc?

Was meinst du mit allgemeines validate? Den obersten Container?
Meine Hierarchie ist grob dargestellt topNaviPanel->configPanel->subPanel->mainPanel->weitere subConfigPanels
Wie gesagt meine Idee war einfach einen oberen Container zu refreshen und damit alle neu zu initaliseren. Geht das so?

Viele Dank fuers Lesen :)
 
S

SlaterB

Gast
> Geht das so?

was gerade neu erstellt wurde (cp) muss doch nicht refresht werden,
das Parent-Panel, in dem du eine Layout-Änderung durchführst, also nach dem add(), wäre ein geeignetes Ziel

----

ich würde jetzt bei mehr Zeit ein Beispiel zusammenbauen genau mit deinen Code-Befehlen und meinen Korrekturen,
welches läuft, aber Zeit ist nicht

falls du noch das Thema weiter voranbringen willst kannst du an einem Programm bauen,
genau deines muss es nicht sein, interessiert niemanden, wäre auch zu lang,
kürzen, kürzen oder in neues Programm kopieren,
wenn es dabei irgendwann gar funktioniert ist das kein Beinbruch sondern guter wichtiger Fortschritt,
herausfinden wo der Wechsel liegt zwischen Fehler und Funktionieren
 

bERt0r

Top Contributor
Schreib dir für jedes Panel eine reset Methode, welche alle Textfelder zurücksetzt. Wenn du faul bist kannst du sowas auch über Reflection machen, nach dem Schema
Java:
for(Component c: parentPanel.getComponents())
{
if(c instanceof JTextField)
{
((JTextField)c).setText(null);
}
}
 

daflowjoe

Mitglied
Ich habe nun eingesehen, dass ich mich selbst um die Aktualisierung der Daten kuemmern muss und ein Interface Refreshable in den Klassen, die aktualisiert werden muessen. Ichr ufe fuer Klassen die das Interface erfuellen dann die Methode refresh auf.

Warum es mit dem Neuerzeugen der Klasseninstanzen aber solche Probleme gibt ist mir nach wie vor unklar.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
MaxG. Swing Dynamisch grafische Objekte erzeugen AWT, Swing, JavaFX & SWT 12
G Grafische Oberflächen mit Java - GUI Builder oder von Hand? AWT, Swing, JavaFX & SWT 19
E Swing Grafische Oberfläche zur Ordnerauswahl AWT, Swing, JavaFX & SWT 6
S Grafische Darstellung von signalen AWT, Swing, JavaFX & SWT 2
M grafische objekte erstellen und bewegen AWT, Swing, JavaFX & SWT 4
B Grafische Anordnung der Elemente AWT, Swing, JavaFX & SWT 2
G Grafische Kalendar-Box? AWT, Swing, JavaFX & SWT 2
M grafische Objekte mit Listener versehen AWT, Swing, JavaFX & SWT 3
E Frage? Warum funktioniert die grafische Ausgabe nicht? AWT, Swing, JavaFX & SWT 4
R Grafische Benutzereingabe in For-Schleife AWT, Swing, JavaFX & SWT 8
S Grafische Oberflächen gehen nicht! AWT, Swing, JavaFX & SWT 7
M Grafische Objekte beliebig auf einer Oberfläche verschieben AWT, Swing, JavaFX & SWT 3
M Grafische Buttons in Java (Einsteiger-Frage) AWT, Swing, JavaFX & SWT 8
T Eigene grafische Oberfläche AWT, Swing, JavaFX & SWT 7
D Swing Komponenten nicht sichtbar nach Start AWT, Swing, JavaFX & SWT 12
H Fehler: Zum Ausführen dieser Anwendung benötigte JavaFX-Runtime-Komponenten fehlen AWT, Swing, JavaFX & SWT 44
H Swing , GridLayout, Größenbestimmung der Komponenten im Layout AWT, Swing, JavaFX & SWT 8
BabySuna Swing Komponenten auslagern auf separate Datei AWT, Swing, JavaFX & SWT 8
B Mit ContentPane werden Komponenten angezeigt, mit SplitPane, JPanel nicht? AWT, Swing, JavaFX & SWT 6
P AWT Einzelne Komponenten zur Laufzeit austauschen? AWT, Swing, JavaFX & SWT 3
D [Swing] Anordnung von Komponenten mit GridLayout Manager AWT, Swing, JavaFX & SWT 13
L Komponenten eines Panels werden erst nach Klick darauf angezeigt AWT, Swing, JavaFX & SWT 13
E Komponenten von JScrollPane werden nicht richtig ermittelt AWT, Swing, JavaFX & SWT 2
F Gebundene Eigenschaften bei Komponenten mit NetBeans verarbeiten AWT, Swing, JavaFX & SWT 3
H LayoutManager Probleme mit Positionierung/Abständen der Komponenten AWT, Swing, JavaFX & SWT 14
dereki2000 Swing JFrame nah hinzufügen von Komponenten akualisieren. AWT, Swing, JavaFX & SWT 2
L Swing Komponenten erst nach Resize sichtbar AWT, Swing, JavaFX & SWT 2
S Swing Panel übernimmt komponenten von anderem AWT, Swing, JavaFX & SWT 7
T Reihenfolge der Komponenten im einem JFrame AWT, Swing, JavaFX & SWT 8
P Gleichmäßige Anodnung von Komponenten im migLayout AWT, Swing, JavaFX & SWT 2
DaCrazyJavaExpert Swing Komponenten genauer anordnen. AWT, Swing, JavaFX & SWT 13
DaCrazyJavaExpert Swing Komponenten in GridBagLayout werden Falsch angeordnet AWT, Swing, JavaFX & SWT 1
P Größe und Ausrichtung von Komponenten festlegen AWT, Swing, JavaFX & SWT 13
MaxG. Swing Swing Komponenten zur Laufzeit hinzufügen AWT, Swing, JavaFX & SWT 2
D Swing Komponenten Anordnung eines Panels in Verbindung eines weiteren Panels AWT, Swing, JavaFX & SWT 9
N Swing Wie Programm strukturieren? (Dynamisch Komponenten hinzufügen) AWT, Swing, JavaFX & SWT 1
Neumi5694 LookAndFeel Look & Feel nicht angezeigter Komponenten ändern AWT, Swing, JavaFX & SWT 6
D JavaFX GUI Komponenten werden langsam bei größerer Datenmenge AWT, Swing, JavaFX & SWT 6
R Komponenten von JPanel bleiben unsichtbar AWT, Swing, JavaFX & SWT 2
D JavaFX Welche Komponenten vermisst ihr? Welche wären essenziell notwendig? AWT, Swing, JavaFX & SWT 8
M Datei mit Komponenten einbinden AWT, Swing, JavaFX & SWT 7
T SWT Externer zugrif auf SWT Komponenten AWT, Swing, JavaFX & SWT 3
Shams Probleme bei dem Hinzufügen von Komponenten zu einem JFrame AWT, Swing, JavaFX & SWT 3
J MouseOver bei Komponenten AWT, Swing, JavaFX & SWT 9
S Größe der Komponenten, beim ändern der größe des Frames, mit ändern! AWT, Swing, JavaFX & SWT 2
D LayoutManager GUI skalieren und deren Komponenten mit Grid(Bag)Layout-Manager. AWT, Swing, JavaFX & SWT 5
G Komponenten vergrößern sich nicht trotz Layoutmanager AWT, Swing, JavaFX & SWT 24
M JavaFX Scenebuilder eigene Komponenten AWT, Swing, JavaFX & SWT 8
A Swing per JComboBox gewünschtes Attribut auswählen und Komponenten passen sich an AWT, Swing, JavaFX & SWT 7
A JavaFX Eigene Komponenten im Scene Builder AWT, Swing, JavaFX & SWT 0
Q Swing Fenster updaten - Hinzugefügte Komponenten darstellen AWT, Swing, JavaFX & SWT 3
S BoxLayout: Anordnung der Komponenten links statt zentriert AWT, Swing, JavaFX & SWT 0
Bartertown JTable - Verschiedene Komponenten in einer Spalte unterbringen AWT, Swing, JavaFX & SWT 3
U Frame zeigt keine Komponenten AWT, Swing, JavaFX & SWT 7
G Applet Applet Komponenten flackern AWT, Swing, JavaFX & SWT 10
K LayoutManager Probleme mit 2 Komponenten AWT, Swing, JavaFX & SWT 9
M Komponenten übereinander AWT, Swing, JavaFX & SWT 7
R Komponenten werden erst nach maximierung des Frames sichtbar (Linux) AWT, Swing, JavaFX & SWT 5
H Swing Getter für GUI-Komponenten AWT, Swing, JavaFX & SWT 3
B Komponenten in Fenster verdrängen sich untereinander AWT, Swing, JavaFX & SWT 6
N Komponenten übereinander AWT, Swing, JavaFX & SWT 3
S Anordnung von GUI-Komponenten mit LayouManger (Problem beim anzeigen von JTextField) AWT, Swing, JavaFX & SWT 5
M Swing Komponenten enablen? AWT, Swing, JavaFX & SWT 4
X Java Komponenten jeder Zeit hinzufügen können AWT, Swing, JavaFX & SWT 3
S View-Komponenten im Controller bekannt machen AWT, Swing, JavaFX & SWT 7
A AWT Komponenten in JavaFX einbetten AWT, Swing, JavaFX & SWT 9
M Swing Komponenten erscheinen beim darüberfahren? AWT, Swing, JavaFX & SWT 7
H Komponenten unmittelbar nach dem Ausführen teilweise unsichtbar AWT, Swing, JavaFX & SWT 3
K GUI in Komponenten aufteilen (MVC) AWT, Swing, JavaFX & SWT 2
W Funktionen, sowie aufruf einiger Komponenten AWT, Swing, JavaFX & SWT 4
J Alle Komponenten eines JFrames durchlaufen AWT, Swing, JavaFX & SWT 2
R Swing Komponenten bleiben bei Animation unsichtbar AWT, Swing, JavaFX & SWT 7
T Unter JPanel liegende Komponenten "totschalten" AWT, Swing, JavaFX & SWT 5
morphesus Swing Komponenten werden nicht angezeigt AWT, Swing, JavaFX & SWT 8
C Swing Reihenfolge der Initialisierung von Komponenten AWT, Swing, JavaFX & SWT 6
Asamandra LayoutManager GridBagLayout - Komponenten (mit fill?) vergrößern aber Proportionen dabei erhalten? AWT, Swing, JavaFX & SWT 3
B Swing Komponenten auf JApplet setSize AWT, Swing, JavaFX & SWT 7
B Swing Komponenten auf JApplet setSize AWT, Swing, JavaFX & SWT 2
W Bildgröße automatisch an Komponenten anpassen AWT, Swing, JavaFX & SWT 3
TheWhiteShadow Swing Komponenten organisieren AWT, Swing, JavaFX & SWT 9
S Überlappung zweier Komponenten AWT, Swing, JavaFX & SWT 12
Z größe der komponenten bestimmen AWT, Swing, JavaFX & SWT 16
C GUI-Komponenten skalieren AWT, Swing, JavaFX & SWT 10
M Seltsames Problem mit Resize eines Fensters und seiner Komponenten AWT, Swing, JavaFX & SWT 2
D Swing Komponenten verstecken AWT, Swing, JavaFX & SWT 4
X Swing Resizing der Komponenten innheralb eines Panels AWT, Swing, JavaFX & SWT 2
T Swing Font für alle Komponenten ändern AWT, Swing, JavaFX & SWT 2
S Problem mit Swing Komponenten AWT, Swing, JavaFX & SWT 11
A Swing Alle Komponenten auf JFrame ermitteln AWT, Swing, JavaFX & SWT 4
E LookAndFeel Eigene Komponenten mit Synth L&F stylen AWT, Swing, JavaFX & SWT 2
S Swing Frame und Klasse extends JPanel - Komponenten zur Laufzeit austauschen AWT, Swing, JavaFX & SWT 18
S JButton und textfield.setText - Komponenten über-/verdecken sich AWT, Swing, JavaFX & SWT 15
M Komponenten übereinander prüfen AWT, Swing, JavaFX & SWT 3
W LayoutManager GridBag richtig nutzen - Komponenten richtig anordnen und automatisch vergrößern AWT, Swing, JavaFX & SWT 5
M Komponenten in anderer Reihenfolge anzeigen AWT, Swing, JavaFX & SWT 4
G swing Komponenten verrutschen ständig... AWT, Swing, JavaFX & SWT 6
D Mit GridBayLayout Komponenten anordnen AWT, Swing, JavaFX & SWT 6
N Window transparent, Komponenten nicht transparent AWT, Swing, JavaFX & SWT 11
R Farbänderung von Komponenten wird nicht wirksam AWT, Swing, JavaFX & SWT 7
P Swing Hierachie oder Reihenfolge von Komponenten AWT, Swing, JavaFX & SWT 5

Ähnliche Java Themen

Neue Themen


Oben