Menü addActionListener

Status
Nicht offen für weitere Antworten.

Sindbad1983

Top Contributor
hi...ich wollt jetzt mit Menüs arbeiten..hab aber irgendwie Probleme...

ich muss ja die MenuItems mit addActionListener(this) registrieren oder?
Das funktioniert aber irgendwie nicht!

Hab ich da was vergessen?



Code:
import java.awt.Color;
import java.awt.Container;
import java.awt.Menu;
import java.awt.MenuBar;
import java.awt.MenuItem;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.WindowListener;
import java.awt.event.WindowAdapter;

import javax.swing.JFrame;

public class PaintFrame extends JFrame implements ActionListener{
	
	
	private Zeichenflaeche zeichenflaeche;
	Figure f;
	
	public PaintFrame(String titel){
		super(titel);
		
		
	
		
		zeichenflaeche=new Zeichenflaeche();
		getContentPane().add(zeichenflaeche); 
	    zeichenflaeche.setSize(getContentPane().getSize()); 
	    zeichenflaeche.setFocusable(true); 
	    zeichenflaeche.requestFocus(); 
	}
	
	
	public void makeMenu(){
		
	MenuBar bar=new MenuBar();
		
		
		 Menu m = new Menu("Look & Feel");
		 MenuItem red=new MenuItem("Red");
		 MenuItem blue=new MenuItem("Blue");
		 MenuItem green=new MenuItem("Green");
		
		 m.add(red);
		 red.addActionListener(this);
		 m.add(blue);
		 blue.addActionListener(this);
		 m.add(green);
		 green.addActionListener(this);
		 bar.add(m);
		 setMenuBar(bar);
		 System.out.println("ccc");
		 
		 
		
	
	}
	
	public void actionPerformed(ActionEvent e) {
		
		String menu=e.getActionCommand();
		
		if(menu.equals("Red")){
			f.setColor(Color.red);
			System.out.println("Rot wurde ausgewählt");
		}
		else if(menu.equals("Blue")){
			f.setColor(Color.blue);
			System.out.println("Blau wurde ausgewählt");
		}
		else if(menu.equals("Green")){
			f.setColor(Color.green);
			System.out.println("Grün wurde ausgewählt");
		}
		
		
	}
	
	public static void main(String [] args){
		PaintFrame frame=new PaintFrame("Zeichenprogramm");
		frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
		
		frame.setSize(600,600);
		
		frame.setLocationRelativeTo(null); 
		frame.setVisible(true);
		frame.makeMenu();
		

		

			
	}

}
 

Sindbad1983

Top Contributor
sorry..

es tut sich einfach nichts, wenn ich auf die Items klick..es wird nicht mal

Code:
System.out.println("Rot wurde ausgewählt");

ausgegeben..
Geschweige dem werden die Figuren auch nicht in der Farbe gezeichnet!
daraus resulierend kann da was nicht stimmen!

Wie bzw. was muss ich beim actionListener registieren?

Wo könnte hier der Fehler liegen?
 

mic_checker

Top Contributor
habs gerad nochma getestet.

was funzt denn net?

Musste ein paar Sachen auskommentieren weil ich ja nicht alle Klassen von dir hatte, aber der rest hat geklappt.

edit:
hab meinen beitrag losgeschickt als deiner schon gepostet war....also bei mir klappts.
 

Sindbad1983

Top Contributor
aha...das ist aber seeehr interessant..wenn ich alles ausklammere, dann gehts bei mir auch..
find ich komisch
eigentlich müsste das doch gehn!
ich ruf das setColor von Figure auf und er spinnt


Code:
public abstract class Figure extends JComponent {
	
	int pressedX;
	int pressedY;
	int releasedX;
	int releasedY;
	Color c;
	
	public void setXY(int x, int y, int r, int h){
		pressedX=x;
		pressedY=y;
		releasedX=r;
		releasedY=h;
	}
	
	public void setColor(Color c){
		this.c=c;
	}
	
	

	public abstract void draw(Graphics g);

}


Code:
	public void actionPerformed(ActionEvent e) {
		
		String me=e.getActionCommand();
		
		if(me.equals("Red")){
			System.out.println("Rot wurde ausgewählt");
			f.setColor(Color.red); //oben hab ich Figure f deklariert
			
		}
		else if(me.equals("Blue")){
			System.out.println("Blau wurde ausgewählt");
			f.setColor(Color.blue);
			
		}
		else if(me.equals("Green")){
			System.out.println("Grün wurde ausgewählt");
			f.setColor(Color.green);
			
		}
		
		
	}

und in der Unterklasse Rectangle soll dann die ausgewählte Farbe weitergegeben werden!

Code:
public class Rectangle extends Figure{
	
	
	
	public void draw(Graphics g)   { 
		
		g.setColor(c);
		g.fillRect(pressedX,pressedY,releasedX-pressedX,releasedY-pressedY);
		

	}


}
 

Sindbad1983

Top Contributor
Rot wurde ausgewählt
Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
at figures.PaintFrame.actionPerformed(PaintFrame.java:67)
at java.awt.MenuItem.processActionEvent(Unknown Source)
at java.awt.MenuItem.processEvent(Unknown Source)
at java.awt.MenuComponent.dispatchEventImpl(Unknown Source)
at java.awt.MenuComponent.dispatchEvent(Unknown Source)
at java.awt.EventQueue.dispatchEvent(Unknown Source)
at java.awt.EventDispatchThread.pumpOneEventForHierarchy(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.run(Unknown Source)
 

Sindbad1983

Top Contributor
ja auf das bin ich selber grad draufgekommen

muss ich mir mal überlegen, wie ich das machen könnte...
weil Figure f=new Figure geht ja nicht, weil diese Klasse abstrakt ist

und die Rectangles und Circle werden dynamisch gezeichnet...
ich werd die setColor Methoden wohl verlegen müssen
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
J Wert in Dropdown Menü kursiv schrieben Java Basics - Anfänger-Themen 19
M Von einem Menü Methode aus anderer Klasse ausführen, die errechnete Werte in Datei schreibt. Java Basics - Anfänger-Themen 8
H Befehle in einem Menü aktivieren Java Basics - Anfänger-Themen 1
O Popoup Menü im JTable richtig anzeigen Java Basics - Anfänger-Themen 6
J Zusätzliches Menü in einem Terminal erstellen Java Basics - Anfänger-Themen 0
J Panel und Menü Java Basics - Anfänger-Themen 6
J Java Anwendungs-Menü Java Basics - Anfänger-Themen 8
S Hallo und Fragen zu Arbeitsverzeichnis und Menü Java Basics - Anfänger-Themen 8
J Menü mit mehreren Bildern Java Basics - Anfänger-Themen 5
R Switch: Nach durchlaufen des Case wieder zum Menü Java Basics - Anfänger-Themen 3
K Erste Schritte Wie mache ich weiter? (Spiel-Menü) Java Basics - Anfänger-Themen 9
G menü in simulation Java Basics - Anfänger-Themen 3
K Drop-down Menü (swing) Java Basics - Anfänger-Themen 4
1 Menü mit Buttons erstellen Java Basics - Anfänger-Themen 10
M Login-Menü Java Basics - Anfänger-Themen 7
MisterSeven Netbeans - Dropdown Menü erstellen? Java Basics - Anfänger-Themen 4
A Menü Java Basics - Anfänger-Themen 7
C kleines Menü erzeugen und anzeigen Java Basics - Anfänger-Themen 11
M Problem beim Ereignishandling mit Menü Java Basics - Anfänger-Themen 2
TheKing Java-Menü Machen Java Basics - Anfänger-Themen 7
P Baum-Menü in Java Java Basics - Anfänger-Themen 5
J Java-Menü Machen Java Basics - Anfänger-Themen 7
Antoras Tab über Menü ansteuern Java Basics - Anfänger-Themen 2
G Rechtsklick Menü? Java Basics - Anfänger-Themen 2
G Strich im Menü Java Basics - Anfänger-Themen 2
D JApplet menü Java Basics - Anfänger-Themen 8
A Menü aktivieren Java Basics - Anfänger-Themen 5
N Von einem Menü in Untermenü Java Basics - Anfänger-Themen 3
M Menü Programmieren Java Basics - Anfänger-Themen 2
T Wie kann ich andere Programme in Java über ein Menü öffnen? Java Basics - Anfänger-Themen 12
M Einfaches Menü erstellen Java Basics - Anfänger-Themen 106
M Dialog aus Menü aufrufen Java Basics - Anfänger-Themen 13
T Rechsklick menü erstellen Java Basics - Anfänger-Themen 2
J Menü-strip beenden-knopf mit Ende des Programms belegen ? Java Basics - Anfänger-Themen 2
D Menü soll immer da bleiben - Frames sollen wechseln Java Basics - Anfänger-Themen 3
S RadioButtons im Menü Java Basics - Anfänger-Themen 5
M statt drop down menü - buttons Java Basics - Anfänger-Themen 5
A Java-Konsolen Menü Java Basics - Anfänger-Themen 6
A Aus dem menü heraus andere Felder bearbeiten Java Basics - Anfänger-Themen 2
C Swing-Fenster mit Menü- und Toolbar Java Basics - Anfänger-Themen 3
F Menü erstellen Java Basics - Anfänger-Themen 14
G PopupMenu; Welches Menü war's denn nun? Java Basics - Anfänger-Themen 6
B Was mach ich falsch mit einem Menü in Swing Java Basics - Anfänger-Themen 2
T Problem bei Menü Java Basics - Anfänger-Themen 2
D addActionListener zeigt keine Wirkung Java Basics - Anfänger-Themen 8
C addActionListener(this) - Fehlermeldung Java Basics - Anfänger-Themen 8
J button.addActionListener(this); - Welches this ist gemeint? Java Basics - Anfänger-Themen 7
M JPanel.addActionListener Java Basics - Anfänger-Themen 5
H addActionListener und setActionCommand ohne Wirkung Java Basics - Anfänger-Themen 2
D addActionListener Java Basics - Anfänger-Themen 28
J wo finde ich die methode addactionlistener in der api ? Java Basics - Anfänger-Themen 5

Ähnliche Java Themen

Neue Themen


Oben