Swing Hierachie oder Reihenfolge von Komponenten

phouli89

Mitglied
Ich verwende ein JLayeredPane und versuche eine Funktion zu finden mit der man die Reihenfolge in der die Komponenten innerhalb des JLayeredPanen gezeichnet werden zu beeinflussen. Die ausgabe soll als XML gespeichert werden und dabei ist es wichtig in welcher Reihenfoilge ich die Objekte abfrage, standardmäßig bekomme ich die Objekte in umgekehrer Reihenfolge in der ich Sie hinzugefügt habe.

Programmfunktion: Über menüs können verschiedene Anzeigen und Felder auf der Editoroberfläche grafisch dargestellt und bearbeitet werden, die Ausgabe wir dann als XML gespeichert in Form von farbwerten, koordinaten usw.

Frage: Kann man die Herachie bearbeiten? oder gibt es eine gängige Methode um die Reihenfolge zu setzen?

PS: die 3 Eben des JLayeredPane reichen nicht aus.
 
Zuletzt bearbeitet von einem Moderator:
Mir gehts ja nicht um die Ebenen, das JLayeredPane hat ja nur 3, auf der unteren ist das Hintergrundbild, auf der mittleren sind Bildelemte und oben einige andere objekte wie Textfelder/Labels usw.. Ich brauche eine Funktion mit der ich die Reihgenfolge in der die Objekte angezeit werden kontrollieren kann, um zu bestimmen welches Objekt oben liegt und ein jeweils weiter unten liegendes Objekt verdeckt. Ich hab es auch schon mit ComponentZOrder versucht, allerdings ändert sich dabei die Herachie schon beim einfachen anklicken. Ich brauche eine statische Liste mit einer festen Reihenfolge.
 
Sorry, hatte sowieso aus irgend einem Grund den falschen Link gepostet. Meines erachtens wird dort genau das erklärt was Du suchst. Vielleicht habe ich es auch nicht ganz verstanden, was Du willst. Vielleicht wäre es hilfreich, mal den Code zu posten.
 
Zwar ist die Funktion soweit ganz ok (hab auch noch eine andere alternative versucht und zwar mit JLayeredPane.setPosition(Component, index) ) aber die Objecte auf dem JLayeredPane sind alles JInternalFrames, diese werden benutzt um die wiederum in den JIntenalFrames enthaltenen Objecte zu skalieren oder bewegen.

Beispiel:
Java:
JLayeredPane EditorPane = new JLayeredPane();
JLabel test1 = new JLabel("TEXT");
JFormatedTextfield test2 = new JFormatedTextfield("Noch ein Text");

JComponentBounds test1Scale = new JComponentBounds (test1, 0, 0, true);
JComponentBounds test2Scale = new JComponentBounds (test2, 0, 0, true);

EditorPane.add(test1Scale);
EditorPane.add(test1Scale);

Problem: Beim anklicken wird die Reihenfolge von z.B.
Java:
EditorPane.setPosition(test1, 1);
wieder geändert, das jeweils zuletzt angeklickte Object Rutscht in der Ordnung an die Spitze und alle anderen verschieben sich um eins nach unten.

Ich brauche eine Funktion, die das verändern der Reihenfolge verbietet
 
Moin,

ich habe gemäß des oben geposteten Links einfach mal folgende Code Zeilen bei Dir geändert

Code:
EditorPane.add(test1Scale);
EditorPane.add(test1Scale);

in

Code:
EditorPane.add(test1Scale, new Integer(2));
EditorPane.add(test2Scale, new Integer(1));

Klappt bei mir tadellos: test1 bleibt "über" test2, egal wie und wo ich klicke, verschiebe usw.
 

Neue Themen


Zurück
Oben