1 Klick für JButton und Layout ändert sich

Status
Nicht offen für weitere Antworten.
S

Sven

Gast
Hallo hab mir einen ähnlichne Code aus em Foum kopiert und abgeändert allerdings kann ich meinen Fehler nicht finden. Ich würde gerne per IF Anweisung meinen Buttons die jeweiligen Panels hinzufügne so das nur 1 klick nötig ist um das Layout von JButtons z.b Namens "Zurück" sich verändert und wenn ich nur 1 mal auf JButton namens "vor " klicke das sich dann das Layout verändert, weil der Code wo hier gepostet wurde reagiert auf beides hat jemand en Tip wie ich das hinbekommen könnte das ich nur 1 drücken muss für vor und 1 mal drücken muss für zurück und nicht das mehrmals drücken möglich ist???

Code:
import javax.swing.*;

import java.awt.*;
import java.awt.event.*;



public class CARDLAYOUT {

	private static final Container cardsPanel = null;
	protected static final Container panelwechsel = null;
	private static final Object button1 = null;
	private static final Object button2 = null;
	private static  JFrame fenster;
	
	
	public CARDLAYOUT(){
	
		erzeuge();
	
	}
		
		
	
	
		public void erzeuge(){
		
			final CardLayout cardLayout = new CardLayout();
		     
		        final JPanel cardsPanel = new JPanel(); 
		
		      //addPanels(cardsPanel); 
		       JToolBar toolBar = new JToolBar(); 
		       JButton button1 = new JButton("Zurück"); 
		       toolBar.add(button1);
		      
		      
		        
		     JButton  button2 = new JButton("Vor"); 
		        toolBar.add(button2); 
		        
		        fenster.add(toolBar,BorderLayout.NORTH);
		        fenster.add(cardsPanel,BorderLayout.CENTER);
		     

		        fenster.setVisible(true); 
		
	    } 
	

		
		public void panelwechsel()
		{
			 JPanel p0 = new JPanel(); 
		        p0.add(new JLabel("Erstes Panel")); 
		        cardsPanel.add(p0, "0"); 
		}
		public void panelwechsel2()
		{
			 JPanel p1 = new JPanel(); 
		        p1.add(new JLabel("Zweites Panel")); 
		        cardsPanel.add(p1, "1"); 
		}
		
		
		public void actionPerformed(ActionEvent ae)    { 
	        if(ae.getSource().equals(button1))    { 
	        	panelwechsel(); 
	        }else if  (ae.getSource().equals(button2)){
	        	panelwechsel2();
	           
	        } 
	      
	    } 


		    	 
		  /*  public void actionPerformed(final ActionEvent e) { 
        if (e.getSource().equals(jButtonZurück)) { 
            cl.previous(kartenstapel); 
        }else if (e.getSource().equals(jButtonVor)) { 
            cl.next(kartenstapel); 
        } 
		   * 
		   */
     
		       
	
	    
	
	
	public static void main(String[] args) {
		fenster = new JFrame();
		
		fenster.pack();
		CARDLAYOUT meinCardLayout = new CARDLAYOUT();
		fenster.setLocation(250, 150);
		fenster.setSize(680, 400);
		fenster.setVisible(true);
		
		

	}

}

Dieser Beitrag wurde am 05.08.2007 um 16:31 Uhr von L-ectron-X editiert.
Code-Tags eingefügt.
 

strucki

Mitglied
habe das ganze mal ein wenig überarbeitet, jetzt gehts.. :wink:

Enums sind übrigens sehr praktisch, um mal ein wenig Struktur in seinen Code zu bekommen.

Code:
import java.awt.BorderLayout;
import java.awt.CardLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JToolBar;

public class CardLayoutTest implements ActionListener {

	private static JFrame fenster;
	private JPanel cardsPanel = null;

	private enum Actions {
		VOR, ZURUECK;
	}

	private enum Cards {
		EINS, ZWEI;
	}

	public CardLayoutTest() {
		erzeuge();
	}

	public void erzeuge() {
		
		cardsPanel = new JPanel();
		JToolBar toolBar = new JToolBar();

		JButton button1 = new JButton("Zurück");
		button1.setActionCommand(Actions.ZURUECK.name());
		toolBar.add(button1);
		button1.addActionListener(this);

		JButton button2 = new JButton("Vor");
		button2.setActionCommand(Actions.VOR.name());
		toolBar.add(button2);
		button2.addActionListener(this);
		
		JPanel p0 = new JPanel();
		p0.add(new JLabel("Erstes Panel"));
		JPanel p1 = new JPanel();
		p1.add(new JLabel("Zweites Panel"));
		
		cardsPanel.setLayout(new CardLayout());
		cardsPanel.add(p0, Cards.EINS.name());
		cardsPanel.add(p1, Cards.ZWEI.name());

		fenster.add(toolBar, BorderLayout.NORTH);
		fenster.add(cardsPanel, BorderLayout.CENTER);
		fenster.setVisible(true);

	}

	public void panelwechsel() {
		CardLayout cl = (CardLayout) (cardsPanel.getLayout());
		cl.show(cardsPanel, Cards.EINS.name());
	}

	public void panelwechsel2() {
		CardLayout cl = (CardLayout) (cardsPanel.getLayout());
		cl.show(cardsPanel, Cards.ZWEI.name());
	}

	public void actionPerformed(ActionEvent ae) {
		if (ae.getActionCommand().equals(Actions.ZURUECK.name())) {
			panelwechsel();
		} else if (ae.getActionCommand().equals(Actions.VOR.name())) {
			panelwechsel2();
		}
	}

	public static void main(String[] args) {
		fenster = new JFrame();

		fenster.pack();
		CardLayoutTest meinCardLayout = new CardLayoutTest();
		fenster.setLocation(250, 150);
		fenster.setSize(680, 400);
		fenster.setVisible(true);

	}

}
 
S

Sven

Gast
Hi also wenn ich den Code einfüge dann bekomm ich an die 30 Fehler beim übersetzen kann man das au nicht einfacher schreiben sorry bin leider noch Anfänger
 
S

Sven

Gast
Also er gibt mir an :
Exception in thread "main" java.lang.Error: Unresolved compilation problem:

at CardLayoutTest.main(CardLayoutTest.java:77)





Und das ist meine Zeile 77:

public static void main(String[] args) {
fenster = new JFrame();

fenster.pack();
CardLayoutTest meinCardLayout = new CardLayoutTest();
fenster.setLocation(250, 150);
fenster.setSize(680, 400);
fenster.setVisible(true);

}

}
 
S

SlaterB

Gast
in deiner Zeile 77 stehen min. 9 Zeilen Code? ;)
steht da nicht mehr in der Exception, z.B. welche Klasse/ Variable oder so?
hast du alle imports?
 
S

Sven

Gast
Ja hab alle Imports ne leider steht da sonst nix mher in der Main Methode i hab einfach den code aus em Forum kopiert mmh...
 
S

SlaterB

Gast
da hilft nur noch die Methode

Code:
public class Test {
   public static void main(String[] args) {
        System.out.println("Hello World");
  }
}
zum laufen bringen und dann Schritt für Schritt Teile der gewünschten Anwendung kopieren
 
S

Sven

Gast
Wenn du denn Code kopierst funktioniert das bei dir?


import java.awt.BorderLayout;
import java.awt.CardLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JToolBar;

public class CardLayoutTest implements ActionListener {

private static JFrame fenster;
private JPanel cardsPanel = null;

private enum Actions {
VOR, ZURUECK;
}

private enum Cards {
EINS, ZWEI;
}

public CardLayoutTest() {
erzeuge();
}

public void erzeuge() {

cardsPanel = new JPanel();
JToolBar toolBar = new JToolBar();

JButton button1 = new JButton("Zurück");
button1.setActionCommand(Actions.ZURUECK.name());
toolBar.add(button1);
button1.addActionListener(this);

JButton button2 = new JButton("Vor");
button2.setActionCommand(Actions.VOR.name());
toolBar.add(button2);
button2.addActionListener(this);

JPanel p0 = new JPanel();
p0.add(new JLabel("Erstes Panel"));
JPanel p1 = new JPanel();
p1.add(new JLabel("Zweites Panel"));

cardsPanel.setLayout(new CardLayout());
cardsPanel.add(p0, Cards.EINS.name());
cardsPanel.add(p1, Cards.ZWEI.name());

fenster.add(toolBar, BorderLayout.NORTH);
fenster.add(cardsPanel, BorderLayout.CENTER);
fenster.setVisible(true);

}

public void panelwechsel() {
CardLayout cl = (CardLayout) (cardsPanel.getLayout());
cl.show(cardsPanel, Cards.EINS.name());
}

public void panelwechsel2() {
CardLayout cl = (CardLayout) (cardsPanel.getLayout());
cl.show(cardsPanel, Cards.ZWEI.name());
}

public void actionPerformed(ActionEvent ae) {
if (ae.getActionCommand().equals(Actions.ZURUECK.name())) {
panelwechsel();
} else if (ae.getActionCommand().equals(Actions.VOR.name())) {
panelwechsel2();
}
}

public static void main(String[] args) {
fenster = new JFrame();

fenster.pack();
CardLayoutTest meinCardLayout = new CardLayoutTest();
fenster.setLocation(250, 150);
fenster.setSize(680, 400);
fenster.setVisible(true);

}

}
 
S

SlaterB

Gast
funktioniert,
bei einer niedrigeren Java-Version, falscher Dateiname/ package solltest du auch andere Fehler bekommen..
 
S

Sven

Gast
mmh also so recht versteh i das nicht bei mir werdne da an die 30 Fehler markiert wie enum.... Action.... obwohl alle Imports da sind
 
S

SlaterB

Gast
deswegen immer alle Fehler angeben..
bzw. zumindest auf die schiere Anzahl hinweisen

enum und Action gehen nicht, genau die gleichen Fehler habe ich auch,
wenn ich in Eclipse die CompilerVersion von 5.0 auf 1.4 herunterstelle,

welches Programm/ welche Java-Version verwendest du?
 
S

Sven

Gast
aahh!! Ok habs auf 6.0 umgestellt jetzt gehts fehlerfrei. Jetzt müsst ich aber mal ganz dumm Frage auf was sollte ich es eingestellt lassne 1.4 oder 5,0 oder 6.0??
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
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
C Bei Btn Klick zwei JPanels switchen AWT, Swing, JavaFX & SWT 14
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 Zwei GUIs - Nach button-Klick soll ein Wert an die andere GUI übergeben werden AWT, Swing, JavaFX & SWT 15
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
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