MouseListener & KeyListener

Status
Nicht offen für weitere Antworten.
G

Guest

Gast
hey, ich habe eine Frage zu dem MouseListener.

Ich hab n JPanel mit zwei Buttons, diese sollen eine Aktion für Rollover kennen (färben sich) und natürlich für das Anklicken.

ich hab ne rollover aktion implementiert auf ein button, aber irgendwie verkorkst er das.

der eine button ändert nie seine farbe, auch wenn ich drüber geh.

der andere ändert seine farbe, sobald ich ins panel gehe! obwohl ich nicht aufm button selbst bin!
Und das witzigste: wenn ich genau auf den button gehe, wird er wieder schwarz!
d.h. irgendwie macht er die aktion immer dann, wenn ich NICHT auf dem button bin, obwohl es ja andersrum sein müsste:

Code:
class bla extends JPanel{

   bla(){
       
         JButton start = new JButton();
         setBounds....

        JButton pause = new JButton();
       setBounds...

       add(start);
       add(pause);

       addMouseListener(this);
   }
}

/* .... */

public void mouseEntered(MouseEvent e){

		 if (e.getSource() == start){
		 	start.setForeground(Data.D_GREEN);
		 }
		 else{
			 pause.setForeground(Color.red);
		 }
	}
	
 	public void mouseExited(MouseEvent e){
		 
		 if (e.getSource() == start){
		 	start.setForeground(Color.black);
		 }
		 else{
			 pause.setForeground(Color.black);
		 }	 
	}

Wieso ist das so seltsam? Liegt das am Panel? Das Layout ist "null" und ich hab die Buttons per setBounds per Hand gelegt.

Ausserdem hab ich ein anderes Problem: Sobald ich auf einen Button klicke, funktioniert mein KEyListener nicht mehr!
Der ist in einem anderen Panel definiert, aber beide Panels liegen im selben Frame!

Wieso verträgt sich das nicht? Was muss ich dagegen tun?

danke :D
 

Marco13

Top Contributor
Du wirst einzelne Listener an die Buttons hängen müssen, weil event.getSource() afaik IMMER das Panel liefern wird (weil DORT ja der MouseListener dranhängt). Es gäbe vielleicht noch andere Alternativen, aber dazu müßte man das Zeil genauer kennen.
 
G

Guest

Gast
und wie geht das mit einzelnen listenern?
ich wüsste nicht, wie ich 2 mouselistener erstellen kann, geschweigedenn wo ich irgend wo nen Namen eingeben kann
für eine Listener-Variable.

Ich kenn nur addMouseLisener(this) ...
 

Oli

Top Contributor
Hallo,

private MouseListener listener1 = new MouseListener(){

... hier müssen dann die Methoden rein

};

und dann button.addMouseListerner(listener1);


Grüße Oli
 

Tom299

Bekanntes Mitglied
du brauchst nur 1 mouse listener, aber mußt ihn an die buttons hängen, wenn die buttons reagieren sollen, und nicht dem panel zuweisen. es wäre vielleicht auch besser ein else if einuzbauen und den 2. button auch abzufragen anstatt nur ein else. und ich bevorzuge beim vergleichen auch .equals () anstatt ==, aber es funktioniert beides.


Code:
package de.test;

import java.awt.Color;
import java.awt.FlowLayout;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;

import javax.swing.JButton;
import javax.swing.JPanel;


public class ButtonPanel extends JPanel implements MouseListener {
    
    private JButton btnA = null;
    private JButton btnB = null;    

    
    public ButtonPanel () {
        super ();    
        initComponents ();
        layoutComponents ();
    }    
    
    private void initComponents () {        
        btnA = new JButton ("AAA");
        btnA.addMouseListener (this);
        btnB = new JButton ("BBB");
        btnB.addMouseListener (this);
    }    
    
    private void layoutComponents () {
        this.setLayout (new FlowLayout ());
        this.add (btnA);
        this.add (btnB);
    }

    public void mouseClicked (MouseEvent e) {
    }

    public void mouseEntered (MouseEvent e) {
        if (e.getSource().equals (btnA)){
            btnA.setForeground(Color.GREEN);
         }
         else{
            btnB.setForeground(Color.RED);
         }        
    }

    public void mouseExited (MouseEvent e) {
        if (e.getSource() == btnA){
            btnA.setForeground(Color.BLACK);
         }
         else{
            btnB.setForeground(Color.BLACK);
         }         
    }

    public void mousePressed (MouseEvent e) {
    }

    public void mouseReleased (MouseEvent e) {
    }    
}
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
U Keylistener und Mouselistener AWT, Swing, JavaFX & SWT 2
K mein keyListener scheint Konflict haben mit mouseListener AWT, Swing, JavaFX & SWT 6
H Viele ActionListener (MouseListener) - Performance AWT, Swing, JavaFX & SWT 24
ExceptionOfExpectation MouseListener-Objekte zu den Graphics-Objekten einfügen AWT, Swing, JavaFX & SWT 3
R Punkt von MouseListener hat falsche Koordinate AWT, Swing, JavaFX & SWT 2
J MouseListener wird nicht ausgeführt. AWT, Swing, JavaFX & SWT 4
S Swing Rechteck über JTable zeichnen (per MouseListener) AWT, Swing, JavaFX & SWT 1
G vorgefertigte Buttons oder neue Komponente mit MouseListener? AWT, Swing, JavaFX & SWT 0
F ListCellRenderer mit JLabel und MouseListener AWT, Swing, JavaFX & SWT 4
D Event Handling MouseListener funktioniert seit Java 8 nicht mehr AWT, Swing, JavaFX & SWT 13
M MouseListener auf table oder scrollPane AWT, Swing, JavaFX & SWT 11
B Event Handling MouseListener Behält seine Variablen, auch wenn ich ein neus Objekt erstelle AWT, Swing, JavaFX & SWT 2
D Swing &MouseListener in einem JFrame, sinnig? AWT, Swing, JavaFX & SWT 11
U MouselIstener zu JFrame AWT, Swing, JavaFX & SWT 6
F Swing MouseListener im JPanel AWT, Swing, JavaFX & SWT 3
J Swing Button mit JTable und MouseListener AWT, Swing, JavaFX & SWT 8
F JPanel + MouseListener AWT, Swing, JavaFX & SWT 5
JavaInBrain Swing Rückgabe aus MouseListener-Klasse AWT, Swing, JavaFX & SWT 3
A SWT SWT Scale und MouseListener AWT, Swing, JavaFX & SWT 7
J MouseListener und rechte Maustaste AWT, Swing, JavaFX & SWT 3
R MouseListener auf JPanel AWT, Swing, JavaFX & SWT 3
Q Swing MouseListener auf JTable geht nicht AWT, Swing, JavaFX & SWT 2
J Swing Einbau MouseListener in JPanel AWT, Swing, JavaFX & SWT 3
N Mit MouseListener X-Y Angaben vom Bild erfahren AWT, Swing, JavaFX & SWT 3
T MouseListener an Ecken von Polygonen hinzufügen AWT, Swing, JavaFX & SWT 5
H Swing JPanel in JTable mit MouseListener AWT, Swing, JavaFX & SWT 3
A Individueller MouseListener ? AWT, Swing, JavaFX & SWT 7
B MouseListener im Renderer einer JComboBox AWT, Swing, JavaFX & SWT 3
P AWT MouseListener unklare abhandlung von Events AWT, Swing, JavaFX & SWT 3
M MouseListener/MouseMotionListener AWT, Swing, JavaFX & SWT 2
njans SWT MouseListener exited AWT, Swing, JavaFX & SWT 4
danx066 MouseListener macht was er will AWT, Swing, JavaFX & SWT 14
K MouseListener für Objekte auf einem Frame AWT, Swing, JavaFX & SWT 4
P JLabel Farbe/Bild ändern aus MouseListener heraus AWT, Swing, JavaFX & SWT 3
U Swing Generierung mehrerer Kreise per MouseListener AWT, Swing, JavaFX & SWT 16
Semox Swing JApplet: Problem MouseListener Anmeldung AWT, Swing, JavaFX & SWT 3
C JTappedPane Mouselistener auf Überschrift Registerkarte AWT, Swing, JavaFX & SWT 2
M MouseListener AWT, Swing, JavaFX & SWT 3
K AWT MouseListener linke und rechte Maustaste AWT, Swing, JavaFX & SWT 5
C Swing MouseListener Doppelklick-Geschwindigkeit AWT, Swing, JavaFX & SWT 4
N Swing MouseListener in JTable AWT, Swing, JavaFX & SWT 4
1 Eigene JComponent mit MouseListener versehen AWT, Swing, JavaFX & SWT 10
Developer_X AWT Component added keinen MouseListener AWT, Swing, JavaFX & SWT 7
R MouseListener wird nicht aufgerufen AWT, Swing, JavaFX & SWT 3
P JComboBox und MouseListener AWT, Swing, JavaFX & SWT 2
W MouseListener im editable ComboBox AWT, Swing, JavaFX & SWT 14
raptorrs Swing MouseListener reagiert nicht auf Instanz einer JTable AWT, Swing, JavaFX & SWT 6
multiholle Swing Mouselistener auf Parentpanel immer aktiv AWT, Swing, JavaFX & SWT 7
C MouseListener und ActionListener kombinieren AWT, Swing, JavaFX & SWT 17
M Komponenten einer unbestimmten Anzahl und MouseListener AWT, Swing, JavaFX & SWT 4
A MouseListener funktionert nie AWT, Swing, JavaFX & SWT 12
C Probleme mit Größe und mit MouseListener AWT, Swing, JavaFX & SWT 2
W MouseListener für jede Zelle einer JTable AWT, Swing, JavaFX & SWT 4
E MouseListener Problem AWT, Swing, JavaFX & SWT 4
D jButton mit ImageIcon & MouseListener AWT, Swing, JavaFX & SWT 5
S MouseListener zurückverfolgung auf element. AWT, Swing, JavaFX & SWT 7
B MouseListener / doppelklick geht net AWT, Swing, JavaFX & SWT 16
M JCheckBox Standard MouseListener entfernen AWT, Swing, JavaFX & SWT 13
hdi Wie mach ich diesen MouseListener AWT, Swing, JavaFX & SWT 4
H JComboBox reagiert nicht auf MouseListener AWT, Swing, JavaFX & SWT 5
2 Mouselistener AWT, Swing, JavaFX & SWT 2
W MouseListener, getClickCount und Doppelklick AWT, Swing, JavaFX & SWT 6
S swing komponenten mit mouselistener rotieren AWT, Swing, JavaFX & SWT 15
G JFrame,JLabel,MouseListener AWT, Swing, JavaFX & SWT 6
F Wie MouseListener bei TableModel anmelden? AWT, Swing, JavaFX & SWT 3
V Frage zu MouseListener --> mousePressed() AWT, Swing, JavaFX & SWT 5
C MouseListener für Spalte eines JTables AWT, Swing, JavaFX & SWT 4
K Problem mit 2 MouseListener. AWT, Swing, JavaFX & SWT 3
M MouseMotionListener oder mouseListener AWT, Swing, JavaFX & SWT 6
T JComboBox und MouseListener AWT, Swing, JavaFX & SWT 11
F MouseListener - Unhandled IOException AWT, Swing, JavaFX & SWT 5
padde479 Statusleiste mit MouseListener aktualisieren AWT, Swing, JavaFX & SWT 3
L Problem mit MouseListener, AdjustmentListener AWT, Swing, JavaFX & SWT 6
T MouseListener Problem AWT, Swing, JavaFX & SWT 3
F Mouselistener wird wiederholt aufgerufen AWT, Swing, JavaFX & SWT 3
G Frage zu MouseListener und speichern des Wertes (reflektion? AWT, Swing, JavaFX & SWT 6
B frage zu MouseListener AWT, Swing, JavaFX & SWT 5
O MouseListener - Wert-Übergabe AWT, Swing, JavaFX & SWT 3
W JPanel, JLabel und MouseListener -> auf clicks reagieren AWT, Swing, JavaFX & SWT 5
S MouseListener auf einem einzelnen Tab setzen AWT, Swing, JavaFX & SWT 3
B MouseListener & Fenster schliessen AWT, Swing, JavaFX & SWT 3
G MouseListener AWT, Swing, JavaFX & SWT 4
G Tooltip sperrt MouseListener? AWT, Swing, JavaFX & SWT 6
S JComboBox und MouseListener AWT, Swing, JavaFX & SWT 5
D Koordinaten der Bildschirmposition auslesen (MouseListener?) AWT, Swing, JavaFX & SWT 7
A Klassenübergreifend MouseListener verwenden AWT, Swing, JavaFX & SWT 14
N "globaler" MouseListener (+MouseMotionListener) AWT, Swing, JavaFX & SWT 4
M ToolTipText für JTable mit MouseListener ohne anklicken? AWT, Swing, JavaFX & SWT 7
A MouseListener auf Bild legen ? AWT, Swing, JavaFX & SWT 16
S Mouselistener erzeugt kein Event in einem Menuitem AWT, Swing, JavaFX & SWT 2
J MouseListener AWT, Swing, JavaFX & SWT 3
A JPanels in JPanel und MouseListener AWT, Swing, JavaFX & SWT 3
C Mehrere MouseListener? AWT, Swing, JavaFX & SWT 7
L Event-handling, MouseListener AWT, Swing, JavaFX & SWT 5
T Problem mit MouseListener bei JButton AWT, Swing, JavaFX & SWT 5
G Problem mit MouseListener AWT, Swing, JavaFX & SWT 9
P JTextfield Text durch Keylistener verändern AWT, Swing, JavaFX & SWT 4
N Keylistener & JComboBox AWT, Swing, JavaFX & SWT 5
B Swing JButton mit KeyListener AWT, Swing, JavaFX & SWT 3
H KeyListener funktioniert nicht AWT, Swing, JavaFX & SWT 1

Ähnliche Java Themen

Neue Themen


Oben