More than 1 MouseListener

T

Thorsten Kiefer

Hi,
I wrote a component (MyComp1 extends JComponent) which adds a MouseListener
to itself.
Then I wrote another component (MyComp2 extends MyComp1) which also adds a
MouseListener to itself.
The problem is that within an instance of MyComp2, the MouseListener added
by MyComp1 does
not receive MouseEvents anymore.
getListeners(MouseListener) also shows, that the instance of MyComp2 only
has 1 listener.

How can MyComp1 still receive MouseEvents ?

Best Regards
Thorsten
 
T

Thorsten Kiefer

Thorsten said:
Hi,
I wrote a component (MyComp1 extends JComponent) which adds a
MouseListener to itself.
Then I wrote another component (MyComp2 extends MyComp1) which also adds a
MouseListener to itself.
The problem is that within an instance of MyComp2, the MouseListener added
by MyComp1 does
not receive MouseEvents anymore.
getListeners(MouseListener) also shows, that the instance of MyComp2 only
has 1 listener.

How can MyComp1 still receive MouseEvents ?

Best Regards
Thorsten

I must correct myself getListeners(MouseListener.class) shows 2 Listeners.
But the first one still doesnt receive events.
 
A

Alex.From.Ohio.Java

I must correct myself getListeners(MouseListener.class) shows 2 Listeners.
But the first one still doesnt receive events.

Error is in your code which you didn't publish.
Multiple Listeners do work fine.

import java.awt.FlowLayout;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import javax.swing.JButton;
import javax.swing.JFrame;

public class GUI {
public static void main(String[] args) {
new GUI();
}
public GUI(){
JFrame frame=new JFrame();
frame.setLayout(new FlowLayout());
frame.setSize(500, 400);
JButton button=new JButton("Click me");
frame.add(button);
button.addMouseListener(new MListener());
button.addMouseListener(new MListener());
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setVisible(true);
}
class MListener extends MouseAdapter{
public void mouseReleased(MouseEvent e) {
System.out.println(this+" "+e);
}
}
}


Alex.
http://www.myjavaserver.com/~alexfromohio/
 
T

Thorsten Kiefer

I must correct myself getListeners(MouseListener.class) shows 2
Listeners. But the first one still doesnt receive events.

Error is in your code which you didn't publish.
Multiple Listeners do work fine.

import java.awt.FlowLayout;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import javax.swing.JButton;
import javax.swing.JFrame;

public class GUI {
public static void main(String[] args) {
new GUI();
}
public GUI(){
JFrame frame=new JFrame();
frame.setLayout(new FlowLayout());
frame.setSize(500, 400);
JButton button=new JButton("Click me");
frame.add(button);
button.addMouseListener(new MListener());
button.addMouseListener(new MListener());
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setVisible(true);
}
class MListener extends MouseAdapter{
public void mouseReleased(MouseEvent e) {
System.out.println(this+" "+e);
}
}
}


Alex.
http://www.myjavaserver.com/~alexfromohio/

Yea,
I found the bug in my code.

Greets
TK
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

No members online now.

Forum statistics

Threads
474,432
Messages
2,571,682
Members
48,796
Latest member
Greg L.

Latest Threads

Top