CardLayout

Status
Nicht offen für weitere Antworten.
J

Jessy

Gast
Sorry ich bins schon wieder aber ich bin wohl echt zu doof! Ichversuch die ganze Zeit schon verzweifelt die Musterlösung abzuändern so das zwischen 2 Buttons sich das Layout verändert allerdings kommen 1000 Fehler . hat niemand en Beispiel wie ich zwischen 2 Buttons die Panels ändern kann und bitte postet nicht schon wieder das
http://java.sun.com/docs/books/tutorial ... /card.html hilft mir null.


Hoofe jemand kann mir Helfen! BITTEEEEE!
 

LordTerra

Aktives Mitglied
beschreib ma genau was du machen willst weil so ganz hab ich das noch net verstanden...

du willst einen button der wenn du drauf drückst was macht?
und der 2. soll das wieder rückgängig machen oder wie?
 
J

Jessy

Gast
Also im prinzip möchte ich eine Toolbar machen die aus 2 Buttons besteht und wenn ich Button 1 Drücke dann kommt z,b 2 Textfelder ,Buttons.... an bestimmten Stellen positioniert und wenn ich Button2 drücke in der Toolbar dann kommt z.b ein ganz anderes Layout z.b 10 Buttons , 20 Textfelder an einer anderen Stelle positioniert

Also auf Kurz zwischen 2 Buttons hin und her klciken und im Fenster wechselt das Layout.
 

LordTerra

Aktives Mitglied
ok

dann mach das doch einfach auf verschiedenen pannels ...

heist du legst 2 pannels genau übereinander und machst ein 3. pannel für die buttons
die ersten 2 pannels (nennen wir sie p1 und p2) machst du zum programmstart unsichtbar

p1.setvisible(false);
p2.setvisible(false);

wenn du jetzt button 1 (b1) drückst musst du nur in den event-listener schreiben:
p1.setvisible(true);
p2.setvisible(false);

wenn du button 2 drückst genau anders herrum

p1.setvisible(false);
p2.setvisible(true);

und auf die pannels kannste ja x bliebig viele objekte packen
 
J

Jessy

Gast
Mmh also den anfang bekomm ich hin aber ab der mitte sehe ich schwarz bin leider noch net so fit in java peinlich. WIe meinst du das dan nmit dme 3 .Panel?? ich habs mal bis jetzt so erstellt:

JPanel p1 = new JPanel();
p1.add(new JButton("Button 1"));
p1.add(new JButton("Button 2"));
p1.add(new JButton("Button 3"));
p1.setVisible(false);

JPanel p2 = new JPanel();
p2.add(new JTextField("TextField", 20));
p2.setVisible(false);
}
public void zeige(){
JPanel b1 = new JPanel();
JButton tb1 = null;
JButton tb2 = null;

b1.add(tb1);
b1.add(tb2);

}

public void actionPerformed(ActionEvent ev)
{
{
tb1.p1.setVisible(true);
tb2.p2.setVisible(false);


}

public void druecke(){

//Create the panel that contains the "cards".
cards = new JPanel(new CardLayout());
cards.add(p1, );
cards.add(p2, );

pane.add(b1, BorderLayout.PAGE_START);
pane.add(cards, BorderLayout.CENTER);
}
 

LordTerra

Aktives Mitglied
so halt:

Code:
package testCard;

import javax.swing.SwingUtilities;
import javax.swing.JPanel;
import javax.swing.JFrame;
import java.awt.Rectangle;
import javax.swing.JButton;
import javax.swing.JLabel;

public class DlgtestCard extends JFrame {

	private static final long serialVersionUID = 1L;
	private JPanel jContentPane = null;
	private JPanel jPanelP3 = null;
	private JPanel jPanelP1 = null;
	private JPanel jPanelP2 = null;
	private JButton jButtonB1 = null;
	private JButton jButtonB2 = null;
	private JLabel jLabeltest1_1 = null;
	private JLabel jLabel1_2 = null;
	private JLabel jLabel2_1 = null;
	private JButton jButtonExit = null;
	/**
	 * This method initializes jPanelP3	
	 * 	
	 * @return javax.swing.JPanel	
	 */
	private JPanel getJPanelP3() {
		if (jPanelP3 == null) {
			jPanelP3 = new JPanel();
			jPanelP3.setLayout(null);
			jPanelP3.setBounds(new Rectangle(0, 0, 450, 50));
			jPanelP3.add(getJButtonB1(), null);
			jPanelP3.add(getJButtonB2(), null);
		}
		return jPanelP3;
	}

	/**
	 * This method initializes jPanelP1	
	 * 	
	 * @return javax.swing.JPanel	
	 */
	private JPanel getJPanelP1() {
		if (jPanelP1 == null) {
			jLabel1_2 = new JLabel();
			jLabel1_2.setBounds(new Rectangle(26, 117, 41, 41));
			jLabel1_2.setText("456");
			jLabeltest1_1 = new JLabel();
			jLabeltest1_1.setBounds(new Rectangle(33, 38, 42, 46));
			jLabeltest1_1.setText("123");
			jPanelP1 = new JPanel();
			jPanelP1.setLayout(null);
			jPanelP1.setBounds(new Rectangle(0, 50, 440, 220));
			jPanelP1.setVisible(false);
			jPanelP1.add(jLabeltest1_1, null);
			jPanelP1.add(jLabel1_2, null);
		}
		return jPanelP1;
	}

	/**
	 * This method initializes jPanelP2	
	 * 	
	 * @return javax.swing.JPanel	
	 */
	private JPanel getJPanelP2() {
		if (jPanelP2 == null) {
			jLabel2_1 = new JLabel();
			jLabel2_1.setBounds(new Rectangle(86, 59, 70, 42));
			jLabel2_1.setText("789");
			jPanelP2 = new JPanel();
			jPanelP2.setLayout(null);
			jPanelP2.setBounds(new Rectangle(0, 50, 440, 220));
			jPanelP2.setVisible(false);
			jPanelP2.add(jLabel2_1, null);
			jPanelP2.add(getJButtonExit(), null);
		}
		return jPanelP2;
	}

	/**
	 * This method initializes jButtonB1	
	 * 	
	 * @return javax.swing.JButton	
	 */
	private JButton getJButtonB1() {
		if (jButtonB1 == null) {
			jButtonB1 = new JButton();
			jButtonB1.setBounds(new Rectangle(94, 20, 69, 15));
			jButtonB1.setText("B1");
			jButtonB1.addActionListener(new java.awt.event.ActionListener() {
				public void actionPerformed(java.awt.event.ActionEvent e) {
					jPanelP1.setVisible(true);
					jPanelP2.setVisible(false);
				}
			});
		}
		return jButtonB1;
	}

	/**
	 * This method initializes jButtonB2	
	 * 	
	 * @return javax.swing.JButton	
	 */
	private JButton getJButtonB2() {
		if (jButtonB2 == null) {
			jButtonB2 = new JButton();
			jButtonB2.setBounds(new Rectangle(274, 22, 79, 11));
			jButtonB2.setText("B2");
			jButtonB2.addActionListener(new java.awt.event.ActionListener() {
				public void actionPerformed(java.awt.event.ActionEvent e) {
					jPanelP1.setVisible(false);
					jPanelP2.setVisible(true);
				}
			});
		}
		return jButtonB2;
	}

	/**
	 * This method initializes jButtonExit	
	 * 	
	 * @return javax.swing.JButton	
	 */
	private JButton getJButtonExit() {
		if (jButtonExit == null) {
			jButtonExit = new JButton();
			jButtonExit.setBounds(new Rectangle(228, 159, 77, 39));
			jButtonExit.setText("Exit");
			jButtonExit.addActionListener(new java.awt.event.ActionListener() {
				public void actionPerformed(java.awt.event.ActionEvent e) {
					System.exit(1);
				}
			});
		}
		return jButtonExit;
	}

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		SwingUtilities.invokeLater(new Runnable() {
			public void run() {
				DlgtestCard thisClass = new DlgtestCard();
				thisClass.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
				thisClass.setVisible(true);
			}
		});
	}

	/**
	 * This is the default constructor
	 */
	public DlgtestCard() {
		super();
		initialize();
	}

	/**
	 * This method initializes this
	 * 
	 * @return void
	 */
	private void initialize() {
		this.setContentPane(getJContentPane());
		this.setTitle("JFrame");
		this.setBounds(new Rectangle(0, 0, 450, 300));
	}

	/**
	 * This method initializes jContentPane
	 * 
	 * @return javax.swing.JPanel
	 */
	private JPanel getJContentPane() {
		if (jContentPane == null) {
			jContentPane = new JPanel();
			jContentPane.setLayout(null);
			jContentPane.add(getJPanelP3(), null);
			jContentPane.add(getJPanelP1(), null);
			jContentPane.add(getJPanelP2(), null);
		}
		return jContentPane;
	}

}
 

Marco13

Top Contributor
Oder nochmal in kurz und kommentiert :wink:

Code:
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;

public class CardLayoutDemo2 extends JFrame
{
    public CardLayoutDemo2()
    {
        setSize(400,300);
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        getContentPane().setLayout(new BorderLayout());

        final CardLayout cardLayout = new CardLayout();
        final JPanel cardsPanel = new JPanel(cardLayout);

        addPanels(cardsPanel);

        // Erstelle die ToolBar mit den vor/zurück buttons
        JToolBar toolBar = new JToolBar();

        JButton button = new JButton("Zurück");
        toolBar.add(button);
        button.addActionListener(new ActionListener()
        {
            public void actionPerformed(ActionEvent e)
            {
                cardLayout.previous(cardsPanel);
            }
        });

        button = new JButton("Vor");
        toolBar.add(button);
        button.addActionListener(new ActionListener()
        {
            public void actionPerformed(ActionEvent e)
            {
                cardLayout.next(cardsPanel);
            }
        });

        getContentPane().add(toolBar, BorderLayout.NORTH);
        getContentPane().add(cardsPanel, BorderLayout.CENTER);

        setVisible(true);
    }


    // Füge alle Panels zum cardPanel hinzu. Später kann man
    // mit den vor/zurück buttons zwischen allen panels
    // umschalten, die in dieser Methode zum cardPanel
    // hinzugefügt werden
    private void addPanels(JPanel cardsPanel)
    {
        JPanel p0 = new JPanel();
        p0.add(new JLabel("Erstes Panel"));
        cardsPanel.add(p0, "0");

        JPanel p1 = new JPanel();
        p1.add(new JLabel("Zweites Panel"));
        cardsPanel.add(p1, "1");

        JPanel p2 = new JPanel();
        p2.add(new JLabel("Drittes Panel"));
        cardsPanel.add(p2, "2");
    }


    public static void main(String[] args)
    {
        new CardLayoutDemo2();
    }
}
 
S

Sven

Gast
Hi Leute hab mir grad das mal kopiert was hier zum Cardlayout geschrieben wurde hab jetzt ne Frage an euch wenn ich das übersetze und auf Button "vor oder zurück "klicke wird egal welchne Button ich klicke das Layout verändert sich ja doppelt ? Wie bekomm man das weg das nur ein klick möglich ist? Es soll ja schließlich nur beim Klick auf "Button Zurück" sich das Layout verändern und bei einen klick auf den "Button Vor" solch das Button Vor Layout erscheinen und nicht das ich 2 mal auf den selben Button klicken kann???
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
I Von Menü: Seite zu Seite springen (CardLayout) AWT, Swing, JavaFX & SWT 8
H CardLayout beschränken AWT, Swing, JavaFX & SWT 2
P CardLayout funktioniert fehlerhaft AWT, Swing, JavaFX & SWT 13
L Java- CardLayout AWT, Swing, JavaFX & SWT 10
L CardLayout in einer Klasse? AWT, Swing, JavaFX & SWT 2
A Swing CardLayout - kein Wechsel möglich AWT, Swing, JavaFX & SWT 5
J CardLayout AWT, Swing, JavaFX & SWT 3
G Cardlayout Refresh Probleme AWT, Swing, JavaFX & SWT 2
padde479 LayoutManager CardLayout wechselt die Karten nicht AWT, Swing, JavaFX & SWT 5
N Swing CardLayout: Problem beim Wechsel zwischen den JPanels AWT, Swing, JavaFX & SWT 3
D Panel wird nicht angezeigt und Fragen zum CardLayout AWT, Swing, JavaFX & SWT 6
F CardLayout.show() funktioniert teilweise nicht AWT, Swing, JavaFX & SWT 5
F Swing Cardlayout aufräumen AWT, Swing, JavaFX & SWT 4
U CardLayout im Applet AWT, Swing, JavaFX & SWT 4
Q CardLayout und Klassenmethodenzugriff AWT, Swing, JavaFX & SWT 11
Q CardLayout, ausgelagerte Panels, ActionListener AWT, Swing, JavaFX & SWT 5
C Swing CardLayout dynamisch erweitern AWT, Swing, JavaFX & SWT 11
H cardlayout und jscrollpane AWT, Swing, JavaFX & SWT 14
C CardLayout in BorderLayout? AWT, Swing, JavaFX & SWT 36
W Swing Probleme mit CardLayout AWT, Swing, JavaFX & SWT 28
D JMenuBar - CardLayout (Klasse anzeigen) AWT, Swing, JavaFX & SWT 3
D JSplitPane, Jtree, CardLayout (constraint must be a string) AWT, Swing, JavaFX & SWT 9
S LayoutManager Card des CardLayout mit MenuItem auswaehlen AWT, Swing, JavaFX & SWT 9
B RootPane bzw CardLayout Transparent machen AWT, Swing, JavaFX & SWT 7
L CardLayout - Show klappt nicht AWT, Swing, JavaFX & SWT 7
D Richtige implimentierung eines CardLayout AWT, Swing, JavaFX & SWT 3
P CardLayout - Anzeigeproblem AWT, Swing, JavaFX & SWT 2
I LayoutManager CardLayout mit anonymen Components AWT, Swing, JavaFX & SWT 4
Private Void LayoutManager Cardwechsel im CardLayout auch von Card aus? AWT, Swing, JavaFX & SWT 6
E LayoutManager Erster Versuch mit Cardlayout AWT, Swing, JavaFX & SWT 2
hdi LayoutManager Problem mit CardLayout AWT, Swing, JavaFX & SWT 11
C Problem mit CardLayout :( AWT, Swing, JavaFX & SWT 10
Dragonfire Swing CardLayout Maximum Size AWT, Swing, JavaFX & SWT 7
klattiator CardLayout - Cards auf Existenz prüfen AWT, Swing, JavaFX & SWT 3
S Frage/Problem CardLayout AWT, Swing, JavaFX & SWT 2
H CardLayout - Card erstellen hinzufügen usw. bis MI (12.3.) AWT, Swing, JavaFX & SWT 2
F CardLayout.show() -> NullPointerException AWT, Swing, JavaFX & SWT 4
G CARDLAYOUT AWT, Swing, JavaFX & SWT 2
D GroupLayout an un plötzlich is CardLayout Funktion tot? AWT, Swing, JavaFX & SWT 10
J CardLayout AWT, Swing, JavaFX & SWT 2
J Hilfe CardLayout AWT, Swing, JavaFX & SWT 3
H Cardlayout AWT, Swing, JavaFX & SWT 3
M CardLayout: Panel wird nicht angezeigt AWT, Swing, JavaFX & SWT 2
J Dialogfenster wird nicht aktualisiert/CardLayout AWT, Swing, JavaFX & SWT 6
m@nu StackOverflowError mit CardLayout? AWT, Swing, JavaFX & SWT 2
R CardLayout bei einem Quiz AWT, Swing, JavaFX & SWT 9
J Designfehler beim CardLayout() AWT, Swing, JavaFX & SWT 4
S Registerkarte mit CardLayout (AWT) erstellen ? AWT, Swing, JavaFX & SWT 6
D CardLayout Plus ? AWT, Swing, JavaFX & SWT 4
T CardLayout Ohne Cards/Reiter AWT, Swing, JavaFX & SWT 2

Ähnliche Java Themen

Neue Themen


Oben