Komponenten einer Anwendung in JTree strukturiert auflisten?

Status
Nicht offen für weitere Antworten.

Matflasch

Aktives Mitglied
Hallo,

ich möchte eine Anwendung schreiben, in der alle Komponenten eines JFrame oder JDialog aufgelistet werden.

Also bei einer z.B. vorhandenen Anwendung soll ein zusätzlicher Button eingebaut werden. Beim klick wird ein JDialog aufgerufen und dem wird dann die Komponente/Klasse übergeben, von dem der JDialog die Komponenten auflisten soll. Ist es möglich in dem JDialog dann alle Komponenten des JFrame oder JDialog aufzulisten und strukturiert in einem JTree auszugeben?

Ein list() gibt mir in der Console die Komponenten soweit aus, bis auf die JMenuBar. Allerdings liefert list() nichts zurueck, somit kann ich die Daten auch nicht weiter verarbeiten.

Ein getComponents() vom ContentPane aus liefert mir die ToolBar und mein HauptPanel, nicht aber die JMenuBar.
Nun hatte ich mir erhofft, dass ich von der ToolBar die Buttons auslesen kann durch ein weiteres getComponents(), allerdings klappt das an dieser stelle nicht. Somit bekomme ich nicht alle, sonder nur die von der Anordnung her, ersten Komponenten.

Ist es überhaupt möglich die Komponenten komplett aufzulisten?
Am besten wäre es noch, wenn eigens erstellte Objekt auch mti angezeigt werden würden (also nicht grafische Objekte).

Kann mir da jemand nen Tipp geben, wie man sowas anfangen kann?

Danke schonmal!

Mfg, Matflasch
 
B

Beni

Gast
Die Componenten sind ein bisschen verschachtelt (z.B. ist die JMenuBar nicht teil des Content, sondern des RootPanes), hier hilft Rekursion weiter:

Code:
public void components( Component component ){
  // irgendwas mit der Component machen
  System.out.println( component );

  if( component instanceof Container ){
    Container container = (Container)component;
    for( int i = 0; n = container.getComponentCount(); i<n; i++ )
      components( container.getComponent( i ));
  }
}

Und sowas kann man ganz gut in einem JTree umsetzen, schau dir das Interface "TreeModel" an, solche Dinge "getChildCount" sind einfach zu schreiben (ähnelt erstaunlich "getComponentCount" :wink: )
 

Matflasch

Aktives Mitglied
Danke!

Das klappt soweit schonmal perfekt!

Allerdings scheine ich zu blöd zu sein, das ganze in einen JTree geordnet unterzubringen :oops:

Kann mir jemand sagen, wie ich die geordnet im JTree unterbringen kann? Also so, wie sie auch im Java an sich angeordnet sind...?

Danke!

Ich brauch hilfe!!! *g*

Mfg, Matflasch
 

Matflasch

Aktives Mitglied
Hallo nochmal...

Ich habe nun einen JTree zustande bekommen.
Ich habe es folgendermaßen gemacht:

- RootNode gesetzt anhand der Root-Klasse.
- Jeweils auf Unter-Components geprüft. Falls welche vorhanden sind das ganze rekursiv aufgerufen.
- Vor dem rekursiven Aufruf habe ich aber dann den gesamten JTree durchsucht nach der 'getParent()'-Klasse der aktuellen Component. Somit wusste ich ja den übergeordneten Container, in dem die aktuelle Component liegt. Daher konnte ich es zu der Node einfach hinzufügen. Allerdings würde das ganze nichtmehr klappen, wenn ich z.B. Klassen wie 'javax.swing.JScrollPane$ScrollBar' oder 'javax.swing.JViewPort' ausblenden will.
Wenn es flexibel sein soll, kann ich die Struktur hier vergessen.
Eine andere Möglichkeit fällt mir aber nicht ein. In einem 2-dimensionalem Array kann ich das ganze ja auch nicht wirklich strukturieren, wenn ich bestimmte Klassen nicht anzeigen will.
- Im moment bildet der JTree auch ausschliesslich die Klassennamen ab. Ich möchte aber gern in Klammern dahinter den Namen der Component. Wenn ich den Namen allerdings dahinterpacke, dann ist die gesamte Struktur falsch.
Der Quelltext ist, meiner Meinung nach, viel zu komplex und unnötig Aufwendig geworden, allerdings find ich keine andere Lösung.

Besteht interesse am Quelltext? Weil wahrscheinlich gibt es eine ganz simple Methode um das ganze fertigzustellen, daher bräuchte ich das Board nicht mit meinem QuellCode zuzumüllen...

TIA, Matflasch
 
B

Beni

Gast
Was meinst du mit "ausblenden"?

Du kannst den Containern einen ContainerListener hinzufuegen. Der wird immer benachrichtigt, wenn z.B. eine Component entfernt wird. Wenn diese geschieht, musst du nur den JTree von der veraenderten Struktur unterrichten.
Das machst du ueber das TreeModel, dem TreeModel (das Interface musst du noch implementieren) werden TreeModelListener uebergeben, wenn sich die Struktur(=Model) aendert, muss man nur diese Listener aufrufen, der Rest erledigt sich automatisch.
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
Bartertown JTable - Verschiedene Komponenten in einer Spalte unterbringen AWT, Swing, JavaFX & SWT 3
M Komponenten einer unbestimmten Anzahl und MouseListener AWT, Swing, JavaFX & SWT 4
G Komponenten einer Java-App von einer anderen auslesen AWT, Swing, JavaFX & SWT 9
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
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
D Grafische Komponenten komplett neu aufbauen (Neukonstruktion) AWT, Swing, JavaFX & SWT 5
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
T Sich überlappende Komponenten AWT, Swing, JavaFX & SWT 2
D Swing Probleme beim Anzeigen der einzelnen Komponenten AWT, Swing, JavaFX & SWT 16
R Swing Komponenten klein angezeigt AWT, Swing, JavaFX & SWT 10
D Swing Swing Komponenten verschieben AWT, Swing, JavaFX & SWT 7
B Komponenten nach Skalierung nicht mehr ansprechbar AWT, Swing, JavaFX & SWT 9
Kr0e AWT Komponenten in JPanel AWT, Swing, JavaFX & SWT 6
JuliaOne Komponenten innerhalb eine JScrollpane werden auch ausserhalb davon gezeichnet! AWT, Swing, JavaFX & SWT 7
xehpuk Swing Komponenten werden durch setFont() winzig AWT, Swing, JavaFX & SWT 3
O Größe von Komponenten im JFrame manuell verändern AWT, Swing, JavaFX & SWT 2
H Komponenten anwendugsweit formatieren AWT, Swing, JavaFX & SWT 6
M Swing Komponenten mit fester Größe an Fensterrand(JFrame) AWT, Swing, JavaFX & SWT 2

Ähnliche Java Themen

Neue Themen


Oben