Layer von JLayeredPane unsichtbar durchsichtig in den Hintergrund

Status
Nicht offen für weitere Antworten.

javaianer

Mitglied
Ist es möglich und wenn ja wie, einen Layer einer JLayeredPane zu "verstecken"?

Wichtig nur ein Layer (eine Ebene) der JLayeredPane nicht die gesamte JLayeredPane soll verschwinden.

Die Möglichkeit, den Inhalt eines Layers auszulesen, einen Layer zu kopeiren oder Layer mit einander zu vertauschen, würde mir auch schon helfen.

Es muss auch nicht unbedingt der ganze Layer "versteckt" werden, mir reicht auch ein Index (FRAME_CONTENT_LAYER +1) samt Inhalt.
 
Zuletzt bearbeitet:

byte

Top Contributor
Du kannst Dir alle Komponenten eines Layers holen mit JLayeredPane#getComponentsInLayer(int) und diese dann mit Component#setVisible(boolean) unsichtbar machen.
 

javaianer

Mitglied
Edit: Allgemein, wie macht man das was es fast in jdem Spiel gibt die Ansicht wechseln (Spielfeld <-> Optionen) hin und her?!

Wow, super Forum!

Klappt wunderbar, aber anscheinend für meine Sache zu umständlich.

Also es soll so sein:
Ein Anwendungsfenster (JFrame, wegen Titelleiste und Symbol in Taskleiste) soll erstmal in einem Container (bisher JPANEL mit JLabell) ein Spielfeld sein, da sich hier städig was bewegt, darf dieses JPanel nicht im folgenden neu augebaut werden, sondern es muss immer das gleiche angezeigt werden. So wenn nun der Benutzer auf einen Button klickt soll ein neuer Container (bisher JPanel) angezeigt werden, alles in diesem soll das JLabel verdecken. Wenn aber nun der Benutzer auf zurück zum Spielfeld klcikt, soll halt das neue JPanel verschwinden (das darf zerstört werden) und das Spielfeld wieder angezeigt werden.

Kurz gesagt, wie es in jedem Spiel ist. (Spielfeld und Optionen-Bildschirm);

Zusatz: ich brauch JLayeredPane, wegen Hintergrundbild.

Also das von dir geschriebene funktioniert, aber da ich mit bis zu 3 Layern arbeite, ist das sehr umständlich alles erst zu verstecken und dann wieder anzuzeigen, ich glaube ich werde statt mit JPanels einfach mit JWindow arbeiten. Diese sind nicht in der Taskleiste zu sehen, sind nicht verschiebbar und haben eine eigene JLayeredPane.

Aber wenn man dann das JFrame verschiebt, verschiebt sich dann das JWindow mit? Das ist mir wichtig. Oder kann ich auch JInternalFrame undecorated setzen (setUndecorated() habe ich nciht hier für gefunden)?

Oder reicht es aus das Spielfeld als Singleton zu entwerfen?
 
Zuletzt bearbeitet:

byte

Top Contributor
Wenn sowieso immer nur eine Ebene gleichzeitig angezeigt wird, dann guck Dir mal das CardLayout an.

Das Vorgehen ist da folgendes:

- Container definieren und CardLayout zuweisen
- dem Container verschiedene Komponenten als Cards hinzufügen (Spielfeld, Optionen, ...)
- Du kannst dann einfach zwischen den verschiedene "Cards" hin und herschalten
 

javaianer

Mitglied
Es ist echt nicht einfach CardLayout mit JLayeredPane zu kombinieren. JPanel besitzt leider nicht die Methode getLayeredPane();
Und ich brauch das für meinen Container.
Ich dachte ich könnte einem JPanel eine JLayeredPane übergebn, aber leider geht das nicht.

Hatte es so versucht:

Java:
class GameView extends JFrame {

  public JLayeredPane getGameViewLayer() {
    return getLayerPane(),
  }

class MyContainer extends JPanel {

  public MyContainer() {
    JLayeredPane jlp = new GameView().getGameViewLayer();
  }

Aber anstatt das ich nun in MyContainer eine JLayeredPane benutzen kann, benutze ich exakt die selbe aus GameView!

Ich glaube das geht nur mit JInternalFrame, aber ich muss den kompeltten Rahemn davon wegbekommen!
 

javaianer

Mitglied
Hab JInternalFrame genommen.
Um Titelleiste wegzubekommen:
Java:
BasicInternalFrameUI ui = (BasicInternalFrameUI) getUI();
        ui.setNorthPane(null);
Um Rahemen wegzubekommen:

paint Methode von dem JInternalFrame überschreiben:
Java:
public void paintComponent(Graphics g) {
           setBorder(null);
        }

Bei mir entsteht aber dadurch, dass immer wieder einer neuer JInternalFrame gezeigt wird, so ein Wackeleffekt, da jedesmal der Rahemn neu auf null gesetzt werden muss.

So wackelt nichts mehr! *freu*
paint Methode von dem JInternalFrame überschreiben:
Java:
public void paintComponent(Graphics g) {
           setBorder(null);
           setBounds(0, 0, breite, höhe);
        }
 
Zuletzt bearbeitet:
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
M Error occurred during initialization of boot layer java.lang.module.FindException: Module javafx.controls not found AWT, Swing, JavaFX & SWT 14
S GIF Layer mit Java kontrollieren AWT, Swing, JavaFX & SWT 2
M Layer in Swing AWT, Swing, JavaFX & SWT 4
B viele JPanels auf JLayeredPane -> to SVG? AWT, Swing, JavaFX & SWT 15
S Swing JLayeredPane Anordnung funktioniert nicht AWT, Swing, JavaFX & SWT 2
S Swing JLayeredPane "Phänomen"? AWT, Swing, JavaFX & SWT 7
E Swing JPanel in JLayeredPane animieren AWT, Swing, JavaFX & SWT 7
R Swing Animation mit JLayeredPane? AWT, Swing, JavaFX & SWT 8
T JLayeredPane in JScrollBox AWT, Swing, JavaFX & SWT 2
GUI-Programmer Swing Problem mit JLayeredPane AWT, Swing, JavaFX & SWT 2
M JLayeredPane mit JPanel im Vordergrund, Hintergrundelemente sperren AWT, Swing, JavaFX & SWT 7
G JPanel in JLayeredPane AWT, Swing, JavaFX & SWT 8
D Probleme mit MouseWheelListener und JLayeredPane in Applet AWT, Swing, JavaFX & SWT 2
G Swing JLayeredPane Schach AWT, Swing, JavaFX & SWT 7
K JLayeredPane Elemente auf gleicher Position AWT, Swing, JavaFX & SWT 7
R JLayeredPane - JPanel mit variabler Form AWT, Swing, JavaFX & SWT 4
R JLayeredPane - Drag&Drop - mouseDragged AWT, Swing, JavaFX & SWT 6
J SWING Fenster mit mehreren JPanels (dank JLayeredPane) AWT, Swing, JavaFX & SWT 19
R Swing JLayeredPane - Wie JScrollPane einbauen? AWT, Swing, JavaFX & SWT 17
R Swing JLayeredPane - Drag&Drop Positionen vertauschen AWT, Swing, JavaFX & SWT 3
H Button auf Bild/ JLayeredPane in Jpanel AWT, Swing, JavaFX & SWT 15
G JLayeredPane moveToFront funktioniert nicht AWT, Swing, JavaFX & SWT 15
D jLayeredPane Ebenen mit dynamischer Größe AWT, Swing, JavaFX & SWT 2
B Ärger mit JLayeredPane :-( AWT, Swing, JavaFX & SWT 5
S JLayeredPane AWT, Swing, JavaFX & SWT 16
M JLayeredPane : Applet - Application AWT, Swing, JavaFX & SWT 4
V JLayeredPane wird nur 1x bezeichnet AWT, Swing, JavaFX & SWT 12
shiny_hair JLayeredPane - Wie funktioniert das mit den Layern? AWT, Swing, JavaFX & SWT 2
T JLayeredPane Problem - AWT und SWING Komponente AWT, Swing, JavaFX & SWT 6
M Scrollbare JLayeredPane AWT, Swing, JavaFX & SWT 2
P Lable sichtbar/unsichtbar toggeln AWT, Swing, JavaFX & SWT 2
MrSnake ComboBox-Einträge werden unsichtbar AWT, Swing, JavaFX & SWT 0
R Komponenten von JPanel bleiben unsichtbar AWT, Swing, JavaFX & SWT 2
P JTextField unsichtbar machen AWT, Swing, JavaFX & SWT 2
Z Swing Swing: Elemente werden doppel/verschoben gezeichnet, sind teils unsichtbar etc... AWT, Swing, JavaFX & SWT 10
P JScrollBar designen oder unsichtbar machen AWT, Swing, JavaFX & SWT 10
H Komponenten unmittelbar nach dem Ausführen teilweise unsichtbar AWT, Swing, JavaFX & SWT 3
R Swing Komponenten bleiben bei Animation unsichtbar AWT, Swing, JavaFX & SWT 7
A jformattedtextfield unsichtbar und wieder sichtbar machen AWT, Swing, JavaFX & SWT 13
R JApplet, Elemente unsichtbar AWT, Swing, JavaFX & SWT 2
J SWT JFace Tree in Section unsichtbar (Eclipse Forms) AWT, Swing, JavaFX & SWT 5
GianaSisters Swing jTable Daten unsichtbar AWT, Swing, JavaFX & SWT 12
B bin am verzweifeln, will auf knopfdruck durch ne überprüfung die labels unsichtbar machen AWT, Swing, JavaFX & SWT 2
E Alles unsichtbar machen AWT, Swing, JavaFX & SWT 12
S ButtonGroups sichtbar/unsichtbar? AWT, Swing, JavaFX & SWT 4
Z JTable Werten unsichtbar?! AWT, Swing, JavaFX & SWT 12
G Tabelle Spalten unsichtbar machen AWT, Swing, JavaFX & SWT 5
M Dialag oder Frame bleibt unsichtbar AWT, Swing, JavaFX & SWT 10
O JButton Rand um Schrift unsichtbar machen AWT, Swing, JavaFX & SWT 2
G Komponenten mehr als unsichtbar machen AWT, Swing, JavaFX & SWT 5
P [SWT] FileDialog unsichtbar machen bzw. positionieren AWT, Swing, JavaFX & SWT 8
P JPanel am Anfang unsichtbar AWT, Swing, JavaFX & SWT 4
S Elemente des JTree unsichtbar? AWT, Swing, JavaFX & SWT 8
D Unsichtbar zeichnen. AWT, Swing, JavaFX & SWT 11
H JApplet fehler objekte unsichtbar. AWT, Swing, JavaFX & SWT 2
B XP-LookAndFeel + modifizierter JTableHeader unsichtbar AWT, Swing, JavaFX & SWT 3
R Componente in JTabbedPane unsichtbar AWT, Swing, JavaFX & SWT 4
D JTable Spalte unsichtbar machen AWT, Swing, JavaFX & SWT 6

Ähnliche Java Themen

Neue Themen


Oben