Swing Panels Wechseln

Putzzmunta

Mitglied
Hallo, ich bin gerade dabei anzufangen, graphisch zu programmieren. Ich bekomme es aber nicht hin, ein Frame zu erstellen, auf welchem ich Pannels überschreiben kann.
Meine Idee ist ich habe ein Frame auf dem setze ich dann immer die jeweiligen Panels. Geht dies ?
Code:
public static void repaint(JFrame Framen, JPanel Paneln) { // Die Grafik neu
        // macht den repaint
       
        Framen.remove(Framen.getContentPane());
        Framen.setContentPane(Paneln);
        Framen.repaint();

    }
Dies ist meine repaint Methode. Aber wenn ich dies jetzt auf einem anderem "Panel" ausführe bekomme ich immer eine Fehlermeldung. ich bitte um Hilf e
Lg Yannik
 

Robat

Top Contributor
Du denkst zu kompliziert :)

Schau dir mal das CardLayout an. Dort kannst du verschiedene Panels zu deinem Frame hinzufügen und sie mit der methode show() und hide() sichtbar machen / verstecken :)
 

Putzzmunta

Mitglied
ähm muss ich dann dem Frame zuweisen oder ? Aber Danke erstmal bin noch relativ neu in Swing deswegen. Die ganzen Bücher enden immer ohne komplexe Anwendungen, wo auch mal das Bild komplett neu gezeichent werden muss.
 

Putzzmunta

Mitglied
Ok jetzt habe ich alles geschrottet... :D
ähm meine Frame Klasse:
Java:
package Grafik;

import java.awt.BorderLayout;
import java.awt.Cursor;
import java.awt.EventQueue;

import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.border.EmptyBorder;
import java.awt.GridLayout;
import java.awt.CardLayout;

public class Frame extends JFrame {

        //Daten
        public static int breite=450;
        public static int höhe=300;
        public static int Bx=20;
        public static int By =20;
      
        public Frame() {
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        setBounds(Bx, By, breite, höhe);
        setCursor(Cursor.HAND_CURSOR);
        setResizable(true);
        setTitle("Yanniks Schiffe versenken");
      
      
    }

}

und meine Methodenklasse :
Code:
package Grafik;

import javax.swing.JFrame;
import javax.swing.JPanel;

public class MethodenGrafik {
    // Panels
    private static JPanel MPanel;
    private static JPanel EPanel;
    private static Frame Fenster;
    public static int Panel;

    public static void repaint(JFrame Framen, JPanel Paneln) { // Die Grafik neu
        // macht den repaint
      
        Framen.remove(Framen.getContentPane());
        Framen.setContentPane(Paneln);
        Framen.repaint();

    }

    public static void grafikTesten() { // Methode zum testen der Grafik...
        FErstellen();
        panelErstellen();
        repaint(Fenster, EPanel);

    }

    public static void panelErstellen() { // Panels Erstellen
        MPanel = new Menue();
        EPanel = new Einstellungen();
    }

    public static void FErstellen() {
        // Frame
        Frame Fenster = new Frame();
        Fenster.setVisible(true);

    }

  
  

}
.. Also wollte das eben Umsetzten und jetzt geht mein Code garnicht mehr.
ich danke im Vorraus
 

Flown

Administrator
Mitarbeiter
Also mal wirklich ein gaaaanz kleines kompilierbares Beispiel für dich:
Java:
import java.awt.BorderLayout;
import java.awt.CardLayout;
import java.awt.Color;
import java.awt.event.ItemEvent;
import java.awt.event.ItemListener;

import javax.swing.JComboBox;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.SwingUtilities;

public class Test {
  public static void main(String... args) {
    SwingUtilities.invokeLater(new Runnable() {
      @Override
      public void run() {
        new Test();
      }
    });
  }
  
  public Test() {
    JFrame frame = new JFrame("CardLayout-Test");
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    frame.setSize(800, 600);
    frame.setLocationByPlatform(true);
    
    JPanel greenPanel = new JPanel();
    greenPanel.setBackground(Color.GREEN);
    
    JPanel bluePanel = new JPanel();
    bluePanel.setBackground(Color.BLUE);
    
    CardLayout cardLayout = new CardLayout(20, 20);
    JPanel mainPanel = new JPanel(cardLayout);
    mainPanel.add(greenPanel, "Green");
    mainPanel.add(bluePanel, "Blue");
    
    JComboBox<String> layoutSwitch = new JComboBox<>(new String[] { "Green", "Blue" });
    layoutSwitch.addItemListener(new ItemListener() {
      @Override
      public void itemStateChanged(ItemEvent e) {
        cardLayout.show(mainPanel, e.getItem().toString());
      }
    });
    frame.add(layoutSwitch, BorderLayout.NORTH);
    frame.add(mainPanel, BorderLayout.CENTER);
    frame.setVisible(true);
  }
}
 

Putzzmunta

Mitglied
schlau wie ich war habe ich den falschen Code gepostet upps.
Also ich habe in mein Frame reingeschrieben:
Java:
public Frame() {
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        setBounds(Bx, By, breite, höhe);
        setCursor(Cursor.HAND_CURSOR);
        setResizable(true);
        setTitle("Yanniks Schiffe versenken");
        layout= new CardLayout();
        setLayout(layout);
    }
in meine Panels jeweils
Java:
public Menue() {
      
        setBounds(Frame.Bx, Frame.By, Frame.breite, Frame.höhe);
        setBackground(SystemColor.textHighlight);
        setLayout(Frame.layout);
...}
und
Java:
public Einstellungen() {
        setBounds(Frame.Bx, Frame.By, Frame.breite, Frame.höhe);
        setBackground(SystemColor.textHighlight);
        setLayout(Frame.layout);
...}
und in meiner Methodenklasse
Java:
public static void panelErstellen() { // Panels Erstellen
        MPanel = new Menue();
        EPanel = new Einstellungen();
      
        Frame.layout.addLayoutComponent("Menü",MPanel );
        Frame.layout.addLayoutComponent("Einstellungen",EPanel);
    }
sowie
Java:
public static void repaint(CardLayout layout, JPanel Paneln,String Name) { // Die Grafik neu
        // macht den repaint
      
        layout.show(Paneln, Name);
            }
Viele Dank für jede Hilfe
 

Putzzmunta

Mitglied
Okay danke, das funktioniert jetzt schon in meiner Methodenklasse. Vielen Danke habe es aber wahrscheinlich viel zu kompliziert geschrieben. Aber ich bin happy ^^
@alle mein Code von oben ist Quatsch ^^ haltet euch an das Beispiel
 

Joose

Top Contributor
Doch kannst du entweder mit der Maus das Fenster größer ziehen oder eben die gewünschte Größe setzen und neuzeichnen lassen ;)
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
P Zwischen verschiedenen Panels wechseln AWT, Swing, JavaFX & SWT 3
B Panels wechseln auf Knopfdruck AWT, Swing, JavaFX & SWT 17
G Zwischen Panels in einem JFrame wechseln AWT, Swing, JavaFX & SWT 4
H Mehrere Panels auf JFrame AWT, Swing, JavaFX & SWT 8
I GUI, das verschiedene Panels hat (Von Seite zu Seite navigieren) AWT, Swing, JavaFX & SWT 7
G LayoutManager Panels anordnen über Schleifenvariablen AWT, Swing, JavaFX & SWT 7
B Bounds aller Panels aktualisieren AWT, Swing, JavaFX & SWT 0
B veränderte Größe eines Panels im Vorhinein wissen? AWT, Swing, JavaFX & SWT 1
L Komponenten eines Panels werden erst nach Klick darauf angezeigt AWT, Swing, JavaFX & SWT 13
L Swing Panels bewegen wie Windows 10 Kacheln AWT, Swing, JavaFX & SWT 0
G LayoutManager Beliebige Anzahl von Panels für LayoutManager AWT, Swing, JavaFX & SWT 3
T Swing Bug: mehrfache Panels bei Mouseover? AWT, Swing, JavaFX & SWT 11
F abgeleitete Panels von einem ContentPanel AWT, Swing, JavaFX & SWT 4
K Event Handling Über JMenuBar die diversen Panels anzeigen AWT, Swing, JavaFX & SWT 10
DaCrazyJavaExpert Swing Zwei gleichgroße Panels in einem Scrollpane mit Layout AWT, Swing, JavaFX & SWT 9
F AWT mehrere Panels in einem Frame AWT, Swing, JavaFX & SWT 17
R Swing panels nebeneinander mit BoxLayout.X_AXIS AWT, Swing, JavaFX & SWT 4
D Swing Komponenten Anordnung eines Panels in Verbindung eines weiteren Panels AWT, Swing, JavaFX & SWT 9
R KeyListener in mehreren Panels AWT, Swing, JavaFX & SWT 5
H zwei gleich große Panels getrennt durch ein weiteres Panel AWT, Swing, JavaFX & SWT 10
Thallius Swing Mehrere tausend "Panels" erstellen AWT, Swing, JavaFX & SWT 3
P Drag & Drop zwischen Panels AWT, Swing, JavaFX & SWT 0
V AWT Panels überlappen AWT, Swing, JavaFX & SWT 1
K Panels mit eigenen Controllern in Main-View einbauen AWT, Swing, JavaFX & SWT 4
U Swing Panels im Contentpane durchschalten AWT, Swing, JavaFX & SWT 1
M Handling 1 Fenster mehrere Panels AWT, Swing, JavaFX & SWT 2
S Swing Plätze von 2 panels vertauschen AWT, Swing, JavaFX & SWT 4
T Panels mit Button verbinden AWT, Swing, JavaFX & SWT 3
F Swing Wie verwalte ich meine Panels richtig? AWT, Swing, JavaFX & SWT 2
Q CardLayout, ausgelagerte Panels, ActionListener AWT, Swing, JavaFX & SWT 5
Java-Insel LayoutManager Ein GridBagLayout-Objekt für mehrere Panels? AWT, Swing, JavaFX & SWT 2
D Stapelung von Panels AWT, Swing, JavaFX & SWT 6
V Swing MouseEvents bei gestapelten Panels AWT, Swing, JavaFX & SWT 2
B JApplet zwei Panels autobreite? AWT, Swing, JavaFX & SWT 2
kodela Teil eines Panels als Graphik speichern AWT, Swing, JavaFX & SWT 3
Kenan89 LayoutManager MigLayout Positionierung von Panels AWT, Swing, JavaFX & SWT 4
A Panels in JavaFX zur Laufzeit erzeugen AWT, Swing, JavaFX & SWT 5
D JButton-Click in JList mit Panels (auf dem der Button ist) AWT, Swing, JavaFX & SWT 6
L Mehre Panels einen Frame zuweisen AWT, Swing, JavaFX & SWT 11
F Panels über buttons zu anderen Panels hinzufügen AWT, Swing, JavaFX & SWT 2
X Swing Resizing der Komponenten innheralb eines Panels AWT, Swing, JavaFX & SWT 2
J Problem mit der Höhe eines Panels AWT, Swing, JavaFX & SWT 11
M Swing JTabbedPane Panels deaktivieren AWT, Swing, JavaFX & SWT 2
S Swing (Nicht) Vergrößern von Panels AWT, Swing, JavaFX & SWT 3
S Drag and Drop über 2 Panels AWT, Swing, JavaFX & SWT 2
B LayoutManager Zeilenweise Anordnung von Panels AWT, Swing, JavaFX & SWT 19
N Hilfe bei Panels! AWT, Swing, JavaFX & SWT 11
J LayoutManager Panels übereinander AWT, Swing, JavaFX & SWT 3
P Von einem Panel auf die Objekte des anderen Panels zugreifen AWT, Swing, JavaFX & SWT 3
C Aufklappbare Panels AWT, Swing, JavaFX & SWT 2
D Panels Dynamisch zur Laufzeit austauschen AWT, Swing, JavaFX & SWT 2
D Vererbung von Panels AWT, Swing, JavaFX & SWT 8
E Wie Breite und Höhe eines Panels festlegen? AWT, Swing, JavaFX & SWT 5
B Panels stapeln, geht das? AWT, Swing, JavaFX & SWT 7
I 2 Panels übereinander, 1 transparent AWT, Swing, JavaFX & SWT 2
S GridBagLayout Panels AWT, Swing, JavaFX & SWT 2
W Panels vertikal anordnen AWT, Swing, JavaFX & SWT 10
R Swing Kommunikation zwischen Panels AWT, Swing, JavaFX & SWT 2
F Abschaltbare Panels AWT, Swing, JavaFX & SWT 5
aze Layout auf Teil eines Panels anwenden AWT, Swing, JavaFX & SWT 5
M Swing Alle Elemente eines Panels? AWT, Swing, JavaFX & SWT 9
I Swing Positionieren von Panels mit layoutManager AWT, Swing, JavaFX & SWT 6
B Java Grafiken an bestimmter Positon des Panels anzeigen AWT, Swing, JavaFX & SWT 6
S import von Klassen (zwei Panels eine Form) AWT, Swing, JavaFX & SWT 39
K Zwei Panels zentriert anordnen AWT, Swing, JavaFX & SWT 3
H2SO3- AWT seltsammes verhalten eines Panels AWT, Swing, JavaFX & SWT 9
S Buttons, Panels etc. zu einer Teilkomponente hinzufügen AWT, Swing, JavaFX & SWT 5
S mehere panels übereinander AWT, Swing, JavaFX & SWT 2
Z Swing Gif's in panels einfügen AWT, Swing, JavaFX & SWT 11
N Überschneidung von Panels umgehen AWT, Swing, JavaFX & SWT 3
D java.lang.IllegalArgumentException beim Darstellen eines Panels AWT, Swing, JavaFX & SWT 7
T Border eines Panels nicht an der rechten Kante anzeigen AWT, Swing, JavaFX & SWT 7
F name des panels in der ein button liegt rausfinden AWT, Swing, JavaFX & SWT 10
R AWT: Aufteilung mit Panels? AWT, Swing, JavaFX & SWT 2
L Focus für KeyListener auf verschiedene Panels AWT, Swing, JavaFX & SWT 2
G Ein Frame mit mehreren austauschbaren Panels AWT, Swing, JavaFX & SWT 3
I Applet mit Panels (so richtig, gehts besser?) AWT, Swing, JavaFX & SWT 3
G designfrage zu 2 panels AWT, Swing, JavaFX & SWT 2
hdi zeitgleiches fokusieren von zwei panels AWT, Swing, JavaFX & SWT 2
G 2 Panels, 2 Listener, 1 Problem AWT, Swing, JavaFX & SWT 2
G Im applet auf panels zeichnen AWT, Swing, JavaFX & SWT 9
G Im Applet Panels anzeigen lassen AWT, Swing, JavaFX & SWT 2
G Editierbarkeit aller Komponenten eines Panels AWT, Swing, JavaFX & SWT 5
R Kleine Panels auf einem großen Panel frei platzieren AWT, Swing, JavaFX & SWT 11
G Remove Panels von JFrame AWT, Swing, JavaFX & SWT 5
M Ausrichtung eines Panels AWT, Swing, JavaFX & SWT 7
H Frames oder Panels für mehrere Ansichten? AWT, Swing, JavaFX & SWT 4
M Problem mit Cursor für Panels AWT, Swing, JavaFX & SWT 4
Kidao Mehrer Panels, mit Buttons in einem Frame abwechselnd laden? AWT, Swing, JavaFX & SWT 3
M Hallo Herr Uhres, Frage zu DND_Demo: Ausrichten der Panels:) AWT, Swing, JavaFX & SWT 4
O Panels ein und ausblenden - geht das? AWT, Swing, JavaFX & SWT 3
O eine Frage zu Panels AWT, Swing, JavaFX & SWT 10
M Problem bei Repaint von Panels AWT, Swing, JavaFX & SWT 2
M Größe des Panels ändern? AWT, Swing, JavaFX & SWT 3
O haben panels von anfang an einen dummen rand? AWT, Swing, JavaFX & SWT 19
M JTree und Anzeige des entsprechenden Panels AWT, Swing, JavaFX & SWT 5
M JList mit unbestimmter Anzahl Panels füllen AWT, Swing, JavaFX & SWT 4
K 2 Panels und Layouts AWT, Swing, JavaFX & SWT 2
K abstände zwischen Panels? AWT, Swing, JavaFX & SWT 3
U suchverfahren vergleich einbinden von panels ? in applet ;) AWT, Swing, JavaFX & SWT 11

Ähnliche Java Themen

Neue Themen


Oben