Swing Inhalt eines JPanels ermitteln & bearbeiten

CoderNoob

Mitglied
Hallo,
vermutlich sehe ich den Wald vor lauter Bäumen nicht und habe daher schon wieder einmal eine dumme Frage:
Ich habe ein JPanel-Array das in einem JFrame angezeigt wird, ein Teil der JPanels enthalten JLabels mit verschiedenen ImageIcons. jetzt muss ich aber bestimmte JPanels ansprechen (über den Array-Index ja kein Problem) und herausfinden ob sich in dem JPanel ein JLabel befindet. Befindet sich dort ein JLabel möchte ich es entfernen und in einem anderen JPanel des Arrays hinzufügen... Und mir fällt einfach keine Methode ein wie ich das JPanel auf JLabels durchsuchen, bzw. den Namen/Bezeichner des JLabels herausfinden kann...😳

Ich hoffe Ihr könnt mir weiterhelfen,
CoderNoob
 
hört sich für mich schwer nach Designfehler an. Wieso willst du das woanderster hinzufügen? Schau dir mal das MVC Architekturmuster an, damit kannst du dein Problem evtl. eleganter lösen.

MFG

Tomate_Salat
 
XHelp hats eh schon gesagt, nur ne kleine Ergänzung. Wenn das mehrere jLabels sein sollten, kansnt auch getComponents auf das umgebende jPanel aufrufen, dann bekommst ein Array aller Componenten in dem jPanel.
 
Nun, da ich mir Java im allgemeinen & Swing im speziellen sozusagen autodidaktisch beibringe und dabei naturgemäß erstmal nach dem Prinzip "Hauptsache es funktioniert" vorgehe, kann ich Designfehler natürlich nicht ausschliessen. Ich habe den verlinkten Thread über die korrekte Architektur auch bereits überflogen und werde ihn vor meinem nächsten Projekt gründlich lesen und umsetzen...
Diesmal habe ich mir jedoch noch mit den von Xhelp ins Spiel gebrachten Methoden beholfen: Mit getComponentCount() ermittle ich, ob sich ein JLabel im angesprochenen JPanel befindet und kann es dann gegebenfalls mit einer Kombination aus getComponent() und einem Typecast entfernen, bzw. in ein neues JPanel einfügen...

Danke für alle Antworten,
CoderNoob
 
MVC ist nicht ohne, ich empfehle dir einfach mal ein paar übungen zu machen und weiter im internet zu recherchieren.
 

Neue Themen


Zurück
Oben