Bei Btn Klick zwei JPanels switchen

con0815

Aktives Mitglied
Guten Morgen ihr Schlafmützen!

Ich würde gerne euren Rat einholen!

ich hab en JFrame in dem befinden sich zwei jpanels untereinander und darunter nochmal Buttons.
Ich möchte das wenn ich auf den Button drücke sich die JPanels ändern, also je nachdem was ich drück. Ich habe die Panels jeweils in eigene Klassen geschrieben. Ergo möchte ich das sich je nachdem wo ich drauf drücke die Klasse in dem Panel ändert. Geht das denn so einfach? weil ich kann noch nicht mal zwei Argumente in die If abfrage stecken, da sagt er mir schon ich soll das else wegmachen
Hoffe wer versteht meine Fragestellung

Anbei ein Beispiel wie weit ich selbst bin:

Java:
package com.test.beispiel;

import java.awt.BorderLayout;

public class PanelSwitch extends JFrame implements ActionListener {

	private JPanel contentPane;
	private JButton btnButton1;
	private JButton btnButton2;
	private JPanel panel;
	private JPanel panel_1;

	/**
	 * Launch the application.

	/**
	 * Create the frame.
	 */
	public PanelSwitch(String title) {
		super(title);
		
		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		setBounds(100, 100, 450, 300);
		contentPane = new JPanel();
		contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
		setContentPane(contentPane);
		contentPane.setLayout(null);
		
		panel = new JPanel();
		panel.setBackground(Color.ORANGE);
		panel.setBounds(6, 6, 438, 86);
		contentPane.add(panel);
		
		panel_1 = new JPanel();
		panel_1.setBounds(6, 104, 438, 86);
		contentPane.add(panel_1);
		
		btnButton1 = new JButton("Butten 1");
		btnButton1.setBounds(6, 224, 117, 29);
		contentPane.add(btnButton1);
		
		btnButton2 = new JButton("Button 2");
		btnButton2.setBounds(306, 224, 117, 29);
		contentPane.add(btnButton2);
		
		btnButton1.addActionListener( this );
	   btnButton2.addActionListener( this );
		
		btnButton1.setActionCommand( "blau" );  
	    btnButton2.setActionCommand( "gelb" ); 
		
		
	}
	public void actionPerformed( ActionEvent evt)  
	{
		if ( evt.getActionCommand().equals("blau"))
			getPanel().setBackground(Color.BLUE);
			
		else
			getPanel().setBackground(Color.YELLOW);
			
		
		repaint();
		
	}
	public JPanel getPanel() {
		return panel;
	}

	public void setPanel(JPanel panel) {
		this.panel = panel;
	}

	public JPanel getPanel_1() {
		return panel_1;
	}

	public void setPanel_1(JPanel panel_1) {
		this.panel_1 = panel_1;
	}
	public static void main(String[] args) {
		EventQueue.invokeLater(new Runnable() {
			public void run() {
				try {
					PanelSwitch frame = new PanelSwitch("Drück mich");
					frame.setVisible(true);
				} catch (Exception e) {
					e.printStackTrace();
				}
			}
		});
	}
}
 
Zuletzt bearbeitet:

con0815

Aktives Mitglied
Erstmal bedanken - Check

Ja, ich habe gerade so ein bisschen gelesen und ich glaube das ist das was ich suche, muss ich mich mal reinarbeiten und ausprobieren
 

con0815

Aktives Mitglied
Ich habe eine GUI, in der Befinden sich drei Panels untereinander, im ersten Panel sind Werte die aus Variablen bestehen die immer aktualisieren, weil die Variablen sich verändern.
im zweiten Pandel soll dann der wechselnde Content sein
und im letzten Panel sind Buttons welche die Aufforderung zum wechseln geben beim Klick.

Kann man sich das so vorstellen?
 

con0815

Aktives Mitglied
achso, genau sollte ich evtl. erklären. Entschuldigung!

in dem Panel soll je nachdem welchen Button von den vieren man drückt jeweils ein Bild kommen und darunter ein Panel mit neuen Buttons bzw. Aktionen. Ein Bild verdeutlicht das evtl. etwas besser

das in der Mitte panel 2 soll halt immer tauschen
 

Anhänge

  • beispiel.png
    beispiel.png
    15,8 KB · Aufrufe: 26

VfL_Freak

Top Contributor
Moin,

also so ganz verstehe ich es auch (vlt. nur nicht, was genau Du eigentlich fragen willst - zumal Dein Code aus dem ersten Post relatib wirr ausschaut) ....

Wenn ich es richtig vermute, brauchst Du doch entweder nur für jeden Button einen ActionListener, der dann die gewünschten Aktionen ausführt (Überschfreiben der "keyPressed"-Methoden usw.), oder EINEN Actionlistener, dader dann an allen Button und gewünschten Aktionen durchführt.

Im Prinzip hast Du es doch schon richtig angefangen (halt nur für EINEN Button und EIN Panel) :
Java:
public void actionPerformed( ActionEvent evt)  
    {
        if ( evt.getActionCommand().equals("blau"))
            getPanel().setBackground(Color.BLUE);
        else
            getPanel().setBackground(Color.YELLOW);
       
        repaint();
    }

Gruß
Klaus
 

con0815

Aktives Mitglied
Hallo,
Ja aber so wie ich es im ersten Post gemacht habe, verändere ich nur das aussehen bzw. die Farbe des Panels, ich möchte aber in das Panel ein neues JPanel laden. (wäre für mich die beste Lösung)
Ich kann wie gesagt darüber nur die Farbe ändern, bzw weiß ich ich dies tue.
Aber eine Classe oder ein Panel reinladen habe ich nichts zu gefunden :(
 

VfL_Freak

Top Contributor
Moin,

verstehe die Frage nicht wirklich ....

bspw.:
Java:
oldPanel.dispose();
newPanel.setVisible( true );
???:L

Gruß
Klaus
 
Zuletzt bearbeitet:

con0815

Aktives Mitglied
Liege ich richtig, dass ich wenn ich 4 Panel habe um die es geht immer schreiben muss:
panel.setVisible ( true);
panel1.setVisible (false);
panel2.setVisible (false);
panel3.setVisible (false);

und beim anderen Button dann:
panel.setVisible ( false);
panel1.setVisible (true);
panel2.setVisible (false);
panel3.setVisible (false);

weil dispose will bei mir nicht funktionieren.
Ist bestimmt nicht die feine Art Code zu schreiben, aber so wie ich es hier stehen hab, kann es klappen?

Gruß
 

VfL_Freak

Top Contributor
Moin,

sorry :oops:
Ja, so geht es auf jeden Fall (ich bin hier gerade mit Dialogen beschäftigt ... DABEI wird dann disposed :bloed:)

Sicher kann man das auch eleganter schreiben, kann Dir nur so auf die Schnelle keine Code dazu geben, da ich ein bisschen in Zeitnot bin :(

Gruß
Klaus
 

diggaa1984

Top Contributor
Das CardLayout ist genau das was du suchst!
Du legst mehrere JPanels in ein JPanel (cards) mit CardLayout. Dabei gibst du den Cards einen eindeutigen Namen (String), welcher die Cards identifiziert. Diesen Ident nutzt du dann zum Anzeigen der Karten:

Java:
//Where the components controlled by the CardLayout are initialized:
JPanel card1 = new JPanel();
...
JPanel card2 = new JPanel();
...

//Create the panel that contains the "cards".
JPanel cards;
cards = new JPanel(new CardLayout());
cards.add(card1, "cardEins");
cards.add(card2, "cardZwei");


//Bei Klick auf einen der "Karte wechseln"-Buttons dann:
CardLayout cl = (CardLayout) (cards.getLayout());
cl.show(cards, "cardZwei");
 
Zuletzt bearbeitet:

con0815

Aktives Mitglied
Erstmal kräftig Danke sagen,

zu diggaa1984 - vielen dank, ich werde mir das merken, habe es jetzt etwas anders gelöst. Obwohl du eben Recht hast, das Cartlayout ist genau das was ich eig. gebraucht hatte, nur wollte das bei mir nicht so richtig und so habe ich mich dazu entschieden es etwas anders zu lösen.

Aber durch deinen Code habe ich das Cardlayout weit besser verstanden und werde es für ein anderes Programm verwenden. da habe ich schon eine Idee
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
J Zwei GUIs - Nach button-Klick soll ein Wert an die andere GUI übergeben werden AWT, Swing, JavaFX & SWT 15
H Swing Buttons erst nach Klick sichtbar AWT, Swing, JavaFX & SWT 13
S JavaFx Zufallsfarbe beim Button-Klick AWT, Swing, JavaFX & SWT 22
H Swing Auf Klick auf Menü-Eintrag reagieren AWT, Swing, JavaFX & SWT 0
Zrebna Problem bei Eventhandling (Value soll nach jedem erneutem Klick gelöscht werden) AWT, Swing, JavaFX & SWT 4
L Komponenten eines Panels werden erst nach Klick darauf angezeigt AWT, Swing, JavaFX & SWT 13
A Inhalt wechseln bei Klick auf Label AWT, Swing, JavaFX & SWT 8
S Ausgabe aktualisiert sich nur nach 2. Klick AWT, Swing, JavaFX & SWT 17
T Swing Änderung des ActionListener Events nach Klick auf JButton AWT, Swing, JavaFX & SWT 2
Neumi5694 Swing JList - Klick abfangen AWT, Swing, JavaFX & SWT 3
it_is_all JPanel verschwindet nach Button-Klick AWT, Swing, JavaFX & SWT 2
A Nach klick auf Button neuen Inhalt im gleichen Fenster AWT, Swing, JavaFX & SWT 3
A JavaFX Nur ein Klick Button AWT, Swing, JavaFX & SWT 3
J Fensterinhalt bei Klick auf Menüitem wechseln AWT, Swing, JavaFX & SWT 1
stylegangsta JLabel durch Klick auf JButton einblenden AWT, Swing, JavaFX & SWT 16
D Mit Klick auf Button ein neues Fenster erzeugen AWT, Swing, JavaFX & SWT 11
A Zufallsgenerator starten bei Klick auf Radiobutton AWT, Swing, JavaFX & SWT 3
R AWT AWT Textfeld durch Klick auf Button erstellen? AWT, Swing, JavaFX & SWT 3
1 JButton nach Klick ausblenden AWT, Swing, JavaFX & SWT 6
W Bei Button-klick neuen button in array hinzufügen AWT, Swing, JavaFX & SWT 7
P Swing Klick in Tabelle nicht möglich AWT, Swing, JavaFX & SWT 0
P Swing JTable keine Markierung nach Button klick AWT, Swing, JavaFX & SWT 0
A Swing bei Auswahl und klick eines JComboBox buttons die Klasse eines anderen Projekts aufrufen AWT, Swing, JavaFX & SWT 3
N Swing JTable mit Sorter: Keine Sortierung bei Klick in Header AWT, Swing, JavaFX & SWT 3
F Swing JTextfield Beispieltext soll nach Klick verschwinden AWT, Swing, JavaFX & SWT 3
T JXTreeTable mit Klick auf TreeNode erweitern AWT, Swing, JavaFX & SWT 12
J Button soll nach Klick Text ändern und Programm in 3 Sekunden beenden AWT, Swing, JavaFX & SWT 6
H Swing Button Klick soll "Untermenü-Buttons" erzeugen AWT, Swing, JavaFX & SWT 2
T Bei Klick Code ausführen AWT, Swing, JavaFX & SWT 17
S Gif beim Klick nicht unterbrechen AWT, Swing, JavaFX & SWT 3
S Ausschluss bei Klick auf GUI Element AWT, Swing, JavaFX & SWT 6
M JPopupMenu per Klick schließen und gleichzeitig ActionEvent auf JButton? AWT, Swing, JavaFX & SWT 15
Z Bei Klick auf JButton soll ein anderer JButton erscheinen AWT, Swing, JavaFX & SWT 4
D JTree node reagiert bei Klick nicht immer AWT, Swing, JavaFX & SWT 2
D Bei Klick zeichnen AWT, Swing, JavaFX & SWT 13
L Swing Flackern in Frame bei erstem Klick AWT, Swing, JavaFX & SWT 19
Madlip SWT Tree mit einen Klick alles ausklappen AWT, Swing, JavaFX & SWT 3
D JTree nach Klick auf einen Hyperlink aktualisieren AWT, Swing, JavaFX & SWT 3
H Bilder auf Buttons per Klick tauschen ( Puzzle ) AWT, Swing, JavaFX & SWT 8
T Puzzle Klick tausch AWT, Swing, JavaFX & SWT 3
A Swing Herausfinden ob bei JTree Klick auf "+"/"-" anahnd x,y AWT, Swing, JavaFX & SWT 2
C jComboBox in jTable ohne Klick öffnen AWT, Swing, JavaFX & SWT 4
S JMenuBar nach 1. Klick deselectieren AWT, Swing, JavaFX & SWT 6
T Demo klick gui erstellen und fenster verlinken AWT, Swing, JavaFX & SWT 5
S JDesktopPane bei Button-Klick anzeigen geht nicht AWT, Swing, JavaFX & SWT 5
multiholle Button bei Klick entfernen AWT, Swing, JavaFX & SWT 3
W Klick in JTextfield AWT, Swing, JavaFX & SWT 6
M animiertes Bild nach Klick auf Button AWT, Swing, JavaFX & SWT 3
H Swing Tabelle nach Klick auf Button mit Daten füllen? AWT, Swing, JavaFX & SWT 2
M JList von Beginn an sortiert nach Spalte ohne Klick? AWT, Swing, JavaFX & SWT 2
L Klick auf JTable -> EditorPane manipulieren, Fragen zu TableModel AWT, Swing, JavaFX & SWT 9
T Ordner öffnen nach Klick auf einen Button AWT, Swing, JavaFX & SWT 3
D 1 klick auf button1 und 1 klick auf button2 und passiert was AWT, Swing, JavaFX & SWT 7
X SWT Oberflächenwechsel bei Button-Klick AWT, Swing, JavaFX & SWT 2
S Zeichnen nach button-klick. AWT, Swing, JavaFX & SWT 4
E Zelle in JTable nach klick markieren AWT, Swing, JavaFX & SWT 2
N Herkunft des Fokus erkennbar (via Klick oder Tab-Steuerung)? AWT, Swing, JavaFX & SWT 4
C Aktion durchführen bei Klick auf ein Element im JTree (Untersch. Klick und Doppklick) AWT, Swing, JavaFX & SWT 5
S Swing Bei Klick auf OK Daten übergeben AWT, Swing, JavaFX & SWT 6
F JButton reagiert erst beim 2 klick AWT, Swing, JavaFX & SWT 8
A Swing JTextField - vorausgefüllt bei klick leer AWT, Swing, JavaFX & SWT 54
B Inhalt von JTextField durch Klick auf JButton in JLabel anzeigen lassen AWT, Swing, JavaFX & SWT 8
Daniel_L JTable - Links-rechts-Klick ist gleich Doppelklick? AWT, Swing, JavaFX & SWT 2
S JComboBox in JTable wird erst nach klick angezeigt AWT, Swing, JavaFX & SWT 2
L JFrame-Verhalten bei Klick auf Schließen-Kreuz ändern AWT, Swing, JavaFX & SWT 3
GilbertGrape JTable mit Combobox-Editierung schon nach einem Klick AWT, Swing, JavaFX & SWT 7
M Ausgabe nach Klick auf JButton funktioniert nicht. AWT, Swing, JavaFX & SWT 6
R Text löchen bei Klick auf editierbare Combobox AWT, Swing, JavaFX & SWT 4
S Jtree-Icon per Klick auf JBUTTON ändern AWT, Swing, JavaFX & SWT 3
G JList, Deselect per Klick AWT, Swing, JavaFX & SWT 5
A Bei Klick auf disabled JMenuItem JMenu nicht schließen AWT, Swing, JavaFX & SWT 2
A JTree wird erst nach Klick aktualisiert AWT, Swing, JavaFX & SWT 2
G Swing ->mainpanel wechseln bei Klick auf MenuItem (NetB.6 AWT, Swing, JavaFX & SWT 3
X JTable "geht" erst beim 2.Klick AWT, Swing, JavaFX & SWT 2
G Farbe ändern bei Klick auf einen Kreis AWT, Swing, JavaFX & SWT 5
F Ignoriere Mausklick falls erster Klick von Doppelklick . AWT, Swing, JavaFX & SWT 4
S 1 Klick für JButton und Layout ändert sich AWT, Swing, JavaFX & SWT 14
G Icon auf Button per Klick darauf ändern? AWT, Swing, JavaFX & SWT 9
S jTable beim Klick auf Button aktualisieren AWT, Swing, JavaFX & SWT 7
H JWindow schließen bei einem Klick außerhalb der Anwendung? AWT, Swing, JavaFX & SWT 19
S Neues Panel in JFrame anzeigen durch Button klick AWT, Swing, JavaFX & SWT 2
A Zellen in JTable auf Klick kurz markieren auf Klick AWT, Swing, JavaFX & SWT 2
N Bei Klick auf einen Menüeintrag, soll Tabelle ausgegeben wer AWT, Swing, JavaFX & SWT 4
B JPanel erst durch Button-Klick sichtbar machen AWT, Swing, JavaFX & SWT 8
Z JMenue und bei Klick neuer Inhalt, Problem AWT, Swing, JavaFX & SWT 3
B Anfänger: Panel bei Button Klick anzeigen? AWT, Swing, JavaFX & SWT 4
M Java mit Swing - Elemente erst nach klick sichtbar AWT, Swing, JavaFX & SWT 13
C Komponente mit Focus bevor JButton-Klick merken. AWT, Swing, JavaFX & SWT 6
M neues Frame per klick anzeigen AWT, Swing, JavaFX & SWT 9
I JSlider - klick ignorieren AWT, Swing, JavaFX & SWT 4
S Einfacher Klick aber mouseClicked() zweimal aufgerufen AWT, Swing, JavaFX & SWT 3
R Klick in einem Tree erkennen und auswerten AWT, Swing, JavaFX & SWT 6
G Ein klick auf JPanel abfangen und verarbeiten? AWT, Swing, JavaFX & SWT 3
S Schließen eines Fensters bei Klick auf Button? AWT, Swing, JavaFX & SWT 2
hamburger_jung Mit Button Klick neues Fenster öffnen. AWT, Swing, JavaFX & SWT 1
N Jtable und ein Klick darauf! AWT, Swing, JavaFX & SWT 4
V JTable: Bei Klick in Zelle -> Ganze Zeile markeiren AWT, Swing, JavaFX & SWT 7
H Neue Instanz einer Klasse bei JButton-Klick AWT, Swing, JavaFX & SWT 5
M Zusätzlichen Maus-Klick erzeugen AWT, Swing, JavaFX & SWT 4
T Anderes Panel nach Button-Klick laden AWT, Swing, JavaFX & SWT 9

Ähnliche Java Themen

Neue Themen


Oben