Verstehe ActionListener in Verbindung mit JMenuItem

Status
Nicht offen für weitere Antworten.

Orri

Mitglied
Hallo

hab ein Prog wo ein Menu mit Untermenu zu finden ist.
Was muss eine Aktion ausgelöst wird wenn ich auf ein UntermenuPunkt klicke.

Menu wird mit richtig und komplett angezeigt.

Code:
private static final long serialVersionUID = 1L;
	
	private JLabel label_ref;
	private JButton buton_ref;
	private JMenuBar menubar_ref;
	private JMenu menu1_ref;

	private StdEingabe instream_ref = new StdEingabe();
	
	
	public GUI()
	{
		//Label
		this.setTitle("Körper");
		this.setLayout(new FlowLayout());
		intGUI();
		this.setSize(500, 300);
		this.setDefaultCloseOperation(EXIT_ON_CLOSE);
		
		this.add(label_ref);
		this.setVisible(true);
		
		erstelleMenu();
	}//end constructor
	
	private void intGUI()
	{
		label_ref = new JLabel();
		menubar_ref = new JMenuBar();
		buton_ref = new JButton();
		
		
	}//end method ingGUI
	
	private void erstelleMenu()
	{
		//Menu
		this.setJMenuBar(menubar_ref);
		menu1_ref = new JMenu("Körper erstellen ");
				
		//Untermenüs zum Hauptmenu hinzufügen 
		menubar_ref.add(menu1_ref);
				
		//1 Untermenu erstellen 
		menu1_ref.add(new JMenuItem("Quader"));
		menu1_ref.setActionCommand("1");
		menu1_ref.addActionListener(this);
		menu1_ref.add(new JMenuItem("Pyramide"));
		menu1_ref.setActionCommand("2");
		menu1_ref.addActionListener(this);
		menu1_ref.add(new JMenuItem("Zylinder"));
		menu1_ref.setActionCommand("3");
		menu1_ref.addActionListener(this);
		menu1_ref.add(new JMenuItem("Kugel"));
		menu1_ref.setActionCommand("4");
		menu1_ref.addActionListener(this);
		menu1_ref.addSeparator();
		menu1_ref.add(new JMenuItem("Beenden"));
		menu1_ref.setActionCommand("5");
		menu1_ref.addActionListener(this);


		
		
	}//end mehtod erstelleMenu
	
	public static void main(String[] args)
	{
		GUI gui_ref = new GUI();
		
		
	}//end method main
	
	
	[COLOR="Blue"]public void actionPerformed(ActionEvent aktion_ref)
	{
				
		String string_ref=aktion_ref.getActionCommand();
		
		if(string_ref.equals("Quader"))
		{
			neuesFensterFürEingabe();
		}
			
		
		
		JMenuItem source= (JMenuItem)(aktion_ref.getSource());
		
		if(source.getClass().getName().equals("Quader"))
		{
			neuesFensterFürEingabe();
					}
		
		[/COLOR]	}
	public void neuesFensterFürEingabe()
	{
		
		//neues Frame erstellen
		JFrame frame_ref = new JFrame("Quader erstellen ");
		frame_ref.setLayout(new GridLayout(3,2));
		frame_ref.setSize(300, 200);
		frame_ref.setVisible(true);
		
		//Schliest alle Fenster
		//frame_ref.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		
		
		//GridTextfeld + Eingabefeld
		frame_ref.add(new JLabel("Hoehe eigeben "));//.setFont(new Font("sanserif", Font.PLAIN, 16));
		frame_ref.add(new TextField("Hier kommt ihre Eingabe rein" ,10));
		frame_ref.add(new JLabel("Breite eingeben"));
		frame_ref.add(new TextField("Hier kommt ihre Eingabe rein" ,10));
		frame_ref.add(new JLabel("Hoehe eingeben"));
		frame_ref.add(new TextField("Hier kommt ihre Eingabe rein", 10));
		
		//Autosize 
		//frame_ref.pack();
		
	}

Den Blau umranden Abschitt verstehe ich nicht
Wird die Action als String abgespeichert oder wie ist es jetzt.
Kann ich dann equals(String) benutzen um an die richtige Aktion zu kommen

Wäre schön wenn mir einer das an einem Beispiel erklären könnte
Vielen Dank im Voraus



PS: Hab schon SuFu und Google benutzt , java.sun.com/books/totrium... auch
PPS: Entschuldigung für den unschönen Still und vllt in den falschen bereich gepostet.
 

matzze2000

Aktives Mitglied
Code:
	[COLOR="Blue"]public void actionPerformed(ActionEvent aktion_ref)
	{
				
		String string_ref=aktion_ref.getActionCommand();
		
		if(string_ref.equals("Quader"))
		{
			neuesFensterFürEingabe();
		}
			
		
		
		JMenuItem source= (JMenuItem)(aktion_ref.getSource());
		
		if(source.getClass().getName().equals("Quader"))
		{
			neuesFensterFürEingabe();
					}
		
		[/COLOR]

Den Blau umranden Abschitt verstehe ich nicht
Wird die Action als String abgespeichert oder wie ist es jetzt.
Kann ich dann equals(String) benutzen um an die richtige Aktion zu kommen

Hey. Mit den Funktionen getActionCommand(); und setActionCommand(String); kannst du einem Objekt das eine Action sendet (in deinem Fall ein Menü Item) einen String zuweisen durch den sich das Objekt eindeutig identifizieren lässt. Du musst also einem erstellten JMenuItem mittels setActionCommand einen String zuweisen. In deiner actionPerformed Methode kannst du dann diese ACtion Commands vergleichen.

In dem von dir geposteten Beispiel setzt du das ActionCommand allerdings nicht auf die MenüItems, sondern auf die Menüleiste, das ist ein Fehler.

Wenn du zum Beispiel so deine Menüeinträge hinzufügst:

Code:
JMenuItem quader = new JMenuItem("Quader");
		menu1_ref.add(quader);
		quader.setActionCommand("1");

funktioniert die Action Methode so:

Code:
public void actionPerformed(ActionEvent aktion_ref)
	{
		if(aktion_ref.getActionCommand().equals("1"))
		{
			Befehl();
		}
 
Zuletzt bearbeitet:

Orri

Mitglied
vielen lieben dank hat mir sehr geholfen
weiss jetzt auch genau wo der fehler ist (referencen) :applaus:
 

Orri

Mitglied
noch ne Frage ist mir heute aufgekommen. ;)

was macht eigentlich diese "this" in addActionListener(this)?
meiner Meinung nach wird der Frame übergerben bzw das Objekt. Ist es richtig? und wenn ja wie kann man es serstezen. Möchte das es besser lesbar ist. (klarer)
 

matzze2000

Aktives Mitglied
Ja genau. this ist das Objekt selbst. Deine Klasse implementiert ja das Interface ActionListener um auf die Buttonaktionen zu reagieren. Dem ActionListener wird ein Objekt der Klasse übergeben das die Action behandeln soll (in dem Fall halt this, also das Objekt selbst). Alternativ könntest du eine neue Klasse schreiben die das Interface ActionListener implementiert und die ActionPerformed Methode dort einfügen. Dann erzeugst du in der Klasse mit den Buttons ein Objekt dieser Action Klasse und übergibst es den ActionListenern.
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
steven789hjk543 Swing Verstehe etwas beim GUI nicht AWT, Swing, JavaFX & SWT 3
R AWT Ich verstehe die Fehlermeldung nicht. Was habe ich falsch gemacht? AWT, Swing, JavaFX & SWT 85
S Irgendwie verstehe ich die Winding-Rules bei Shapes nicht :( AWT, Swing, JavaFX & SWT 4
V Verstehe mein Druckproblem nicht AWT, Swing, JavaFX & SWT 2
C Button ActionListener funktioniert nicht AWT, Swing, JavaFX & SWT 1
B Actionlistener mit Java Swing AWT, Swing, JavaFX & SWT 2
L jComboBox Actionlistener wird beim erstmaligen Befüllen getriggert AWT, Swing, JavaFX & SWT 7
H Viele ActionListener (MouseListener) - Performance AWT, Swing, JavaFX & SWT 24
pkm MainFrame durch Actionlistener auffrischen, aber wie? AWT, Swing, JavaFX & SWT 2
L actionListener für Button AWT, Swing, JavaFX & SWT 97
R Actionlistener funktioniert nicht AWT, Swing, JavaFX & SWT 4
N Bilder auf Button einfügen und mehrmals ändern (ein Button, mehrere ActionListener) AWT, Swing, JavaFX & SWT 2
R ActionListener in Actionlistener AWT, Swing, JavaFX & SWT 6
S Swing Variable in Actionlistener aufrufen AWT, Swing, JavaFX & SWT 10
P Swing ActionListener überschreibt einen Wert aus der Hauptklasse nicht AWT, Swing, JavaFX & SWT 5
N Aufruf einer anderen Klasse durch Button ActionListener AWT, Swing, JavaFX & SWT 2
M AWT Kann meinen Fehler beim ActionListener nicht finden AWT, Swing, JavaFX & SWT 5
F Wie bekomme ich den Wert der ComboBox in eine Variable gespeichert welche ich für meinen ActionListener nutzen kann? AWT, Swing, JavaFX & SWT 3
L Ein Actionlistener für ein Textfeld, anstatt viele Actionlistener für ein Textfeld AWT, Swing, JavaFX & SWT 7
coolian ActionListener funktonirt nicht richtig auf JMenuItem AWT, Swing, JavaFX & SWT 4
L ActionListener zu Button in Panel hinzufügen AWT, Swing, JavaFX & SWT 10
R Kann JLabel in ActionListener nicht aufrufen AWT, Swing, JavaFX & SWT 4
Blender3D einzelner ActionListener vs anonyme ActionListener AWT, Swing, JavaFX & SWT 10
T Swing Änderung des ActionListener Events nach Klick auf JButton AWT, Swing, JavaFX & SWT 2
xYurisha ActionListener Methoden Buttons zuweisen! AWT, Swing, JavaFX & SWT 16
J ActionListener bei Buttons AWT, Swing, JavaFX & SWT 14
S Swing Problem mit Button und ActionListener AWT, Swing, JavaFX & SWT 5
it_is_all ActionListener umlenken/ updaten mit AddActionListener funktioniert nicht AWT, Swing, JavaFX & SWT 3
it_is_all Event Handling ActionListener in anderer Klasse klappt nicht AWT, Swing, JavaFX & SWT 4
F "ActionListener" funktioniert nicht AWT, Swing, JavaFX & SWT 4
Z ActionListener Variable übergeben AWT, Swing, JavaFX & SWT 12
T JProgressbar während actionListener updaten AWT, Swing, JavaFX & SWT 1
S While Schleife im Actionlistener AWT, Swing, JavaFX & SWT 1
S ActionListener für alle Buttons AWT, Swing, JavaFX & SWT 26
R Swing ActionListener bei JButton AWT, Swing, JavaFX & SWT 9
T ActionListener nimmt JTextField nicht mehr an. AWT, Swing, JavaFX & SWT 2
P ActionListener Graphics Einbauen AWT, Swing, JavaFX & SWT 0
S actionlistener mit 2 fenster integrieren AWT, Swing, JavaFX & SWT 11
Liondary GUI - ActionListener AWT, Swing, JavaFX & SWT 7
J ActionListener erkennt Variable nicht AWT, Swing, JavaFX & SWT 6
E ActionListener führt falsche Funktion aus AWT, Swing, JavaFX & SWT 6
Sin137 ActionListener in MVC AWT, Swing, JavaFX & SWT 7
M ActionListener und mathematische Methoden AWT, Swing, JavaFX & SWT 13
A Oberfläche mit zwei Klassen und actionlistener verbinden AWT, Swing, JavaFX & SWT 7
Paul15 ActionListener Variablen AWT, Swing, JavaFX & SWT 13
Y ActionListener AWT, Swing, JavaFX & SWT 2
K Ereignisbehandlung, ActionListener, ActionEvent AWT, Swing, JavaFX & SWT 3
A Gui für Vokabeltrainer (ActionListener) AWT, Swing, JavaFX & SWT 14
C Im ActionListener Buttons disablen, einen Thread starten, dann Buttons enablen AWT, Swing, JavaFX & SWT 2
M JTextArea wird nicht aktualisiert (ActionListener-Problem) AWT, Swing, JavaFX & SWT 1
J Event Handling JOptionPane ActionListener setzen. AWT, Swing, JavaFX & SWT 3
S ActionListener Klasse aufrufen AWT, Swing, JavaFX & SWT 4
R Swing Problem: IOException bei ActionListener AWT, Swing, JavaFX & SWT 1
J ActionListener soll auf paint() Methode zugreifen AWT, Swing, JavaFX & SWT 1
A JButton wird bei ActionListener nicht "angenommen" AWT, Swing, JavaFX & SWT 7
T Einfaches Problem mit ActionListener AWT, Swing, JavaFX & SWT 2
K ActionListener mit KeyListener AWT, Swing, JavaFX & SWT 7
K GUI, Button, ActionListener - ein paar Einsteigerprobleme AWT, Swing, JavaFX & SWT 1
W Verschachtelter ActionListener AWT, Swing, JavaFX & SWT 0
N gewünschte ActionListener bei RadioButton mit isSelected geht nicht AWT, Swing, JavaFX & SWT 2
C Probleme mit Buttons und einem ActionListener AWT, Swing, JavaFX & SWT 2
K Swing JMenu und ActionListener AWT, Swing, JavaFX & SWT 4
A Swing ActionListener AWT, Swing, JavaFX & SWT 8
V ActionListener Abhängigkeitenproblem AWT, Swing, JavaFX & SWT 6
M ActionListener für mehrere Klassen AWT, Swing, JavaFX & SWT 4
J ActionListener für Buttons AWT, Swing, JavaFX & SWT 3
M Event Handling ActionListener übergeben ich checks net AWT, Swing, JavaFX & SWT 4
C Swing ComboBox - ActionListener deaktivieren AWT, Swing, JavaFX & SWT 2
S Button (ActionListener) funktioniert nicht, wenn y-Koordinate verändert wird AWT, Swing, JavaFX & SWT 5
L Swing ActionListener führt seine Aufgabe nur teilweise aus. AWT, Swing, JavaFX & SWT 7
A Swing ActionListener kann nicht hinzugefügt werden AWT, Swing, JavaFX & SWT 4
P Actionlistener - 3 klassen - kompliziert - auf methoden zugreifen AWT, Swing, JavaFX & SWT 3
Q CardLayout, ausgelagerte Panels, ActionListener AWT, Swing, JavaFX & SWT 5
M ProgressBar in ActionListener AWT, Swing, JavaFX & SWT 4
D AWT eigenem Knopf ActionListener zuweisen AWT, Swing, JavaFX & SWT 24
E Wert aus ActionListener geben AWT, Swing, JavaFX & SWT 4
J ActionListener per Innere Klasse oder e.getActionCommand() if-Abfrage? AWT, Swing, JavaFX & SWT 12
L Swing ActionListener zugriff auf bestimmte Elemente AWT, Swing, JavaFX & SWT 3
P Swing Seltsames ActionListener-Verhalten AWT, Swing, JavaFX & SWT 7
Oliver530 ActionListener von eigener ButtonKlasse AWT, Swing, JavaFX & SWT 16
Kenan89 statischer ActionListener keine Wirkung? AWT, Swing, JavaFX & SWT 2
Kenan89 statischer ActionListener keine Wirkung? AWT, Swing, JavaFX & SWT 3
C In der Schleife ActionListener aktivieren AWT, Swing, JavaFX & SWT 3
B Swing Problem beim ActionListener AWT, Swing, JavaFX & SWT 5
P Swing JPanel mit ActionListener mehrfach verwenden AWT, Swing, JavaFX & SWT 8
1 ActionEvent generieren und an ActionListener weiterleiten AWT, Swing, JavaFX & SWT 12
N Swing Klasse erbt von JDialog - Problem mit innerer ActionListener-Klasse AWT, Swing, JavaFX & SWT 6
N JCombobox und Actionlistener Aktion nur ausführen, wenn Useraktion ihn auslöst AWT, Swing, JavaFX & SWT 4
N Componente und Actionlistener AWT, Swing, JavaFX & SWT 5
C ActionListener AWT, Swing, JavaFX & SWT 6
Corben ActionListener Error AWT, Swing, JavaFX & SWT 2
F Wert durch ActionListener an Klasse übergeben AWT, Swing, JavaFX & SWT 3
I Swing Problem mit InputMap bei JButton (ActionListener) AWT, Swing, JavaFX & SWT 3
S Swing JButton mit ActionListener innerhalb einer JTable AWT, Swing, JavaFX & SWT 4
P Variablen in einem ActionListener zurücksetzen AWT, Swing, JavaFX & SWT 6
M AWT Problem mit ActionListener AWT, Swing, JavaFX & SWT 2
A Swing Bug in Swing? Wenn checkbox disabled reagiert ActionListener nicht AWT, Swing, JavaFX & SWT 5
S ActionListener "nach oben weitergeben" AWT, Swing, JavaFX & SWT 10
M Anonymer ActionListener AWT, Swing, JavaFX & SWT 4
L SWT Actionlistener Combobox öffnen AWT, Swing, JavaFX & SWT 4

Ähnliche Java Themen

Neue Themen


Oben