MouseListener für mehrere Buttons

G

Ghast

Gast
Hi leute, mal ne Frage.
Ich hab ein Programm bei dem ich ein Ereignis auslösen will, wenn ich die Maus über einen Button ziehe.
Das klappt auch wunderbar für einen Button. Aber ich will nicht immer einen neuen MouseListener für jeden Button haben. Ich will einen für alle und dann anhand von if Anweisungen schauen, von welchem Button das Event ausgelöst wurde.

Wisst ihr wie ich das überprüfen kann? Hab es schon mit getSource() etc versucht...ging aber nicht.

Java:
	public class ButtonListener implements MouseListener
	{
	
		public void mouseClicked(MouseEvent arg0) {}

		public void mouseEntered(MouseEvent e) {
			if(e == blabla)
                {
                 macheEtwas();
                }
		}
		public void mouseExited(MouseEvent a) {	}
		public void mousePressed(MouseEvent b) {}
		public void mouseReleased(MouseEvent c) {}
        }
Ein button heißt z.B. green, der andere blau.

Danke!
 
A

AwsmDude

Gast
Du solltest schon etwas genauer sein mit dem was du versucht hast.
Mit welcher Variable hast du es verglichen? == ist schließlich ein Vergleich auf die Referenz.
Ist der Listener in der gleichen Klasse? (Innere Klasse)
Gerne genaueren Code posten.

Über setActionCommand(String actionCommand), getActionCommand() und Stringvergleichen ließe sich das auch lösen.
 
T

Toffel2

Gast
Du kannst den Button mit setName Namen verpassen und dann in der if-Anweisung mit getName() vergleichen.

Java:
    public void mouseEntered(MouseEvent e) {
            if(e.getSource() instanceof JButton)
                {
                    JButton button = (JButton) evt.getSource();
                    if(button.getName().equals("Name1") {
                                     // mach was

                            }
                }
        }
 
G

Ghast

Gast
Also das ist meine Klasse. Ich wollte nur was ausprobieren, deshalb ist sie etwas sehr unausgereift.
Java:
public class utton extends JFrame {
	
	public JFrame frame;
	private JButton blue;
	private JButton red;
	private JButton black;
	public JButton green;
	public Container zusammen;
	
	public utton(String s)  {
		 frame = this;
		 frame.setSize(300,500);
		Container zusammen = frame.getContentPane();
		zusammen.setBackground(Color.CYAN);
		ButtonListener hörer = new ButtonListener();
		zusammen.setLayout(new BorderLayout(20,20));
		Panel buttons = new Panel();
		buttons.setLayout(new FlowLayout (10, 10, FlowLayout.CENTER));
		JButton blue = new JButton("blue");
                blue.addMouseListener(hörer);
		buttons.add(blue);
		JButton green = new JButton("green");
		green.addMouseListener(hörer);
		buttons.add(green, FlowLayout.CENTER);
		zusammen.add(buttons, BorderLayout.SOUTH);
		Panel links =new Panel();
		links.setLayout(new GridLayout(10,1));
		links.setBackground(Color.blue);
		this.setVisible(true);
		JButton red = new JButton("red");
		links.add(red);
		zusammen.add(links,BorderLayout.WEST);
		JButton black = new JButton("black");
		black.addMouseListener(hörer);
		links.add(black);
		frame.pack();
		
	}

	
	
	
	
	
	
	
	
	public class ButtonListener implements MouseListener
	{
		@Override
		public void mouseClicked(MouseEvent arg0) {}
		public void mouseEntered(MouseEvent e) {
			if(e.getSource()==green){
				
			zusammen.setBackground(Color.green);
			
			}
			if (e.getSource() ==blue)
			{
				zusammen.setBackground(Color.blue);
			}
                        //etc
		}
		public void mouseExited(MouseEvent e) {	}
		public void mousePressed(MouseEvent e) {}
		public void mouseReleased(MouseEvent e) {}}	
	}
Wie ihr seht habe ich mehrere Buttons, die, wenn man mit der Maus darüber geht die Farbe des Containers änder. Mit einem Button kriege ich das ganze wunderbar hin. Nur habe ich keine Lust für jeden Button nen eigenen Listener zu schreiben!
 
V

vanny

Gast
Leg dir doch sonst im Frame ´ne Map oder ein Set an, als Key benutzt du den String, den du per getName(); von deinen Komponenten bekommst und als Value halt die Color, die gesetzt werden soll.

Dann noch ne Methode zBsp.
Java:
farbeSetzen(String name){
}

dann in deinem Listener noch die Referenz des Frames mitschicken und einfach in deiner Eventmethode
Java:
frame.farbeSetzen(e.getSource().getName());

und ab gehts :p

ich hoffe du verstehst mich

Gruß Vanny
 
B

bygones

Gast
du hast instanzvariablen blue, green etc, aber auch lokale variablen

[c]JButton green = new JButton("green");[/c] ueberschreibt deine instanzvariable, daher funktioniert die abfrage mit getSource() nicht
 
G

Ghast

Gast
Sorry 4 Doppelpost.
Da fällt mir noch was ein und zwar:
Wenn ich ein JMenuItem in ein Menu hinzufüge und will, dass beim Klick auf dieses Iaem, sagen wir mal es heißt FAQ, etwas ausgegeben haben will, kann ich das Item dann so behandeln wie einen Button?
Also, dass erst nach dem draufdrücken, bzw Mausklick das Fenster geöffnet wird? Kriege das nicht hin
[Java]
Ausfuhrer ausfuhren = new Ausfuhrer();
menubar = new JMenuBar();
menu = new JMenu("Über");
uber = new JMenuItem("FAQ");
uber.addActionListener(ausfuhren);

[/code]
Java:
public class Ausfuhrer implements ActionListener
{

	public void actionPerformed(ActionEvent e) {
		if (e.getSource() ==  uber)
		{
			
			System.out.println("ich hasse JAva");
		}
}

Wieso geht das nich?
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
J MouseListener für Schleifen-Objekte Java Basics - Anfänger-Themen 13
H MouseListener für ein eingefügtes Bild in einem JFrame Java Basics - Anfänger-Themen 7
P JFrame, Linien zeichnen, MouseListener Java Basics - Anfänger-Themen 2
H MouseListener klicks begrenzen Java Basics - Anfänger-Themen 4
H MouseListener begrenzen und Speichern Java Basics - Anfänger-Themen 1
V Problem - MouseListener/2DGraphics Java Basics - Anfänger-Themen 2
R Variablen MouseListener funktioniert auf anderen Pcs nur bedingt Java Basics - Anfänger-Themen 6
G MouseListener funktioniert nicht wie geplant Java Basics - Anfänger-Themen 4
GRAZZ0R MouseListener - Rechteck Bewegen Java Basics - Anfänger-Themen 1
R Variable Klassenübegreifend MouseListener Java Basics - Anfänger-Themen 0
D MouseListener funktioniert nach Timerstart nicht mehr Java Basics - Anfänger-Themen 9
S vom JPanel aus durch Mouselistener Internet aufrufen Java Basics - Anfänger-Themen 6
S GUI ImageIcon Mouselistener Link Java Basics - Anfänger-Themen 0
P MouseListener funktioniert nicht Java Basics - Anfänger-Themen 6
J KeyListener,MouseListener,MouseMotionListener und static Java Basics - Anfänger-Themen 7
P Problem mit MouseListener Java Basics - Anfänger-Themen 4
T MouseListener, recht Taste Java Basics - Anfänger-Themen 2
M MouseListener funktioniert nicht Java Basics - Anfänger-Themen 9
E Mouselistener auf jTable Java Basics - Anfänger-Themen 18
B Variablen an MouseListener übergeben Java Basics - Anfänger-Themen 5
H Mouselistener bei JTable Java Basics - Anfänger-Themen 4
J MouseListener fuer gezeichnete Polyline Java Basics - Anfänger-Themen 3
L Label + MouseListener Java Basics - Anfänger-Themen 12
M MouseListener funkioniert auf JPanel nicht Java Basics - Anfänger-Themen 8
P Jtree MouseListener und NoCollapse Java Basics - Anfänger-Themen 2
M Schiebepuzzle: MouseListener und Graphics? Java Basics - Anfänger-Themen 6
M MouseListener Java Basics - Anfänger-Themen 2
kitz MouseListener Java Basics - Anfänger-Themen 8
B MouseListener & Graphics Java Basics - Anfänger-Themen 10
D Problem mit Mouselistener und jtable Java Basics - Anfänger-Themen 7
C fragen zu MouseListener Java Basics - Anfänger-Themen 3
M MouseListener funktioniert in jar-file nicht mehr Java Basics - Anfänger-Themen 13
F Logikproblem: Auf Mouselistener warten Java Basics - Anfänger-Themen 6
E Auf Mouselistener warten?! Java Basics - Anfänger-Themen 20
S Probleme mit 2 mouselistener Java Basics - Anfänger-Themen 6
A Frage zu MouseListener Java Basics - Anfänger-Themen 2
D Mouselistener Java Basics - Anfänger-Themen 2
A jPanel an MouseListener übergeben? Java Basics - Anfänger-Themen 2
S Swing JEditoPane MouseListener Java Basics - Anfänger-Themen 5
M Mouselistener Java Basics - Anfänger-Themen 4
S MouseListener funzt net. Java Basics - Anfänger-Themen 5
G MouseListener double click? Java Basics - Anfänger-Themen 1
V MouseListener Java Basics - Anfänger-Themen 5
M MouseListener Java Basics - Anfänger-Themen 3
N Mouselistener? Java Basics - Anfänger-Themen 5
T ein MouseListener pro Objekt sinnvoll? Java Basics - Anfänger-Themen 4
F MouseListener - Unhandled IOException Java Basics - Anfänger-Themen 2
U MouseListener Java Basics - Anfänger-Themen 2
L Array von Buttons, jeder soll MouseListener haben Java Basics - Anfänger-Themen 5
S MouseListener - Events auf Mouseklick Java Basics - Anfänger-Themen 14
L MouseListener Problem. Java Basics - Anfänger-Themen 2
S mouselistener Java Basics - Anfänger-Themen 3
N MouseListener Java Basics - Anfänger-Themen 2
J MouseListener implementieren Java Basics - Anfänger-Themen 12
P MouseListener wird anscheinend nicht benutzt Java Basics - Anfänger-Themen 12
N MouseListener - reagiert zu spät Java Basics - Anfänger-Themen 3
D JList - Textzeilen MouseListener zuweisen Java Basics - Anfänger-Themen 4
M prüfen ob mouselistener gesetzt ist. Java Basics - Anfänger-Themen 10
O image und mouseListener Java Basics - Anfänger-Themen 15
W MouseListener Probleme beim Abfangen Java Basics - Anfänger-Themen 8
P Kann keinen MouseListener hinzufügen Java Basics - Anfänger-Themen 3
G MouseListener einbauen - wie? Java Basics - Anfänger-Themen 4
M Code aus IntelliJ in "Textform" für Word-Paper? Java Basics - Anfänger-Themen 10
G Icon für App Java Basics - Anfänger-Themen 1
Kerstininer Vererbung Hilfe beim lernen von Objektorientierung für eine Klausur Java Basics - Anfänger-Themen 10
Sniper1000 Java 391 für Windows Java Basics - Anfänger-Themen 37
P Wieso kann ich als Index für einen Array einen Char angeben? Java Basics - Anfänger-Themen 3
benny1993 Java Programm erstellen für ein Fußball-Turnier Java Basics - Anfänger-Themen 3
V Durchschnittliche Volatility in Prozent für 4 Stunden berechnen Java Basics - Anfänger-Themen 14
P Welches SDK für das erstellen einer ausführbaren Datei? Java Basics - Anfänger-Themen 4
C negamax-Algorithmus für Tic-Tac-Toe spielt manchmal falsch Java Basics - Anfänger-Themen 10
D Apache HTTPClient für alle Fälle Java Basics - Anfänger-Themen 41
J Layout Manager, welcher ist der Richtige für mein Program? Java Basics - Anfänger-Themen 1
J Fehlermeldung unverständlich für Jakarta Java Basics - Anfänger-Themen 17
M Minimax-Algorithmus für Vier gewinnt Java Basics - Anfänger-Themen 11
M GUI für Vier-Gewinnt. Java Basics - Anfänger-Themen 4
I JPA Query für mehrere Klassen Java Basics - Anfänger-Themen 3
D Quellcode für cmd funktioniert nicht Java Basics - Anfänger-Themen 9
R Operatoren Rechenoperation in Java verwenden für Calculator Java Basics - Anfänger-Themen 2
R Operatoren Rechenoperation verwenden für Taschenrechner. Java Basics - Anfänger-Themen 32
Ostkreuz Counter für Booleanwerte Java Basics - Anfänger-Themen 8
B Regex Ausdrücke für Monate Java Basics - Anfänger-Themen 7
I BlueJ Queue Frage für Klausur Java Basics - Anfänger-Themen 2
K loop pausieren für eine bestimmte Anzahl? Java Basics - Anfänger-Themen 1
Jxhnny.lpz Randomisier für Buttons Java Basics - Anfänger-Themen 13
W Intuitive interface für Komponenten Java Basics - Anfänger-Themen 4
M "Class<T> clazz" im Constructor - auch für int möglich? Java Basics - Anfänger-Themen 7
B Schrankensystem mit Farberkennung für Flashgame funktioniert nicht wie geplant Java Basics - Anfänger-Themen 4
I Code für Bezahlsystem (auch bei Offline Aktivität) Java Basics - Anfänger-Themen 7
U jUnit 5 Test für eine addMethode Java Basics - Anfänger-Themen 18
M monte carlo Algorithmus für 4 gewinnt Java Basics - Anfänger-Themen 12
frager2345 Java Singleton Muster -> Methode für Konstruktor mit Parametern Java Basics - Anfänger-Themen 3
izoards Sortier Algorithmus für Bounding Box Elememte Links nach Rechts und von Oben nach Unten Java Basics - Anfänger-Themen 33
M generate Methode für Streams Java Basics - Anfänger-Themen 6
I Datenmodell für "Tags" Java Basics - Anfänger-Themen 6
Lion.King for-Kontrollstruktur für Pyramide Java Basics - Anfänger-Themen 8
B Mit Countdown Midnestdauer für Teilaufgabenerledigung erzwingen Java Basics - Anfänger-Themen 8
J File length als Prüfwert für Download Java Basics - Anfänger-Themen 5
K Spieleidee gesucht für Informatikprojekt - JAVA (BlueJ)? Java Basics - Anfänger-Themen 15
P Zähler Variable für mehrere Objekte Java Basics - Anfänger-Themen 6

Ähnliche Java Themen

Neue Themen


Oben