B
Bernie
Gast
Hallo,
ich hänge derzeit fest mit JlayeredPane, und das bringt mich langsam zum verweiflen :'-(
in einem JLayeredPane (null Layout) habe ich 4 verschiedene Panels, die frei platzierbar sind
die Panels werden in einer Schleife dem LayeredPane hinzugefügt, und zwar so:
Nun habe ich 4 Panels die mit index (1,2,3,4) in den layeredpane (richtig) eingefügt worden sind.
Diese Panels haben nun ein JPopupMenu, für jedes dieser Panels soll es nun die Möglichkeit geben,
das aktuell selektierte "eine Ebene nach vorne", oder "eine ebene nach hinten" zu bringen.
im entsprechenden ActionListener versuche ich dies:
Ich habe auch anderes in der setLayer Methode probiert, nichts führt zum Erfolg. Bitte, was mache ich hier falsch ?
Vielen Dank schonmal.
Beste Grüße
Bernie
[Edit by Beni: Codetags repariert, / und nicht \ verwenden!]
ich hänge derzeit fest mit JlayeredPane, und das bringt mich langsam zum verweiflen :'-(
in einem JLayeredPane (null Layout) habe ich 4 verschiedene Panels, die frei platzierbar sind
die Panels werden in einer Schleife dem LayeredPane hinzugefügt, und zwar so:
Code:
int i = 1;
for (Iterator iter = panels.iterator(); iter.hasNext();) {
CustomPanel cP = (CustomPanel) iter.next();
layeredPane.add(cP, new Integer(i++));
cP.setBounds(...);
}
Nun habe ich 4 Panels die mit index (1,2,3,4) in den layeredpane (richtig) eingefügt worden sind.
Diese Panels haben nun ein JPopupMenu, für jedes dieser Panels soll es nun die Möglichkeit geben,
das aktuell selektierte "eine Ebene nach vorne", oder "eine ebene nach hinten" zu bringen.
im entsprechenden ActionListener versuche ich dies:
Code:
public void actionPerformed(ActionEvent e) {
String source = ((JMenuItem)e.getSource()).getActionCommand();
if(source.equals("eine ebene nach vorne")) {
//cP.getLayerPosition() gibt den Layer-index des selektierten Panels zurück (1,2,3,4)
//setLayer(cP, 1, cP.getLayerPosition()) zB. führt nur zu teilweise richtigem, und für
// mich nicht nachvollziebarem Verhalten
// außerdem scheint moveToFront immer ein rücken in die oberste Ebene zu machen
//was muss ich hier tun, damit das selektierte Panel "eine ebene" nach oben rückt ?
setLayer(cP, cP.getLayerPosition(),cP.getLayerPosition());
moveToFront(cP);
}
}
Ich habe auch anderes in der setLayer Methode probiert, nichts führt zum Erfolg. Bitte, was mache ich hier falsch ?
Vielen Dank schonmal.
Beste Grüße
Bernie
[Edit by Beni: Codetags repariert, / und nicht \ verwenden!]