MouseListener question
I have a JLabel in a JPanel in a JScrollPane. I want to add a MouseListener to the JLabel, but it's not working.
I can add a MouseListener to the JScrollPane, but not the JLabel for some reason. Help!
I have a JLabel in a JPanel in a JScrollPane. I want to add a MouseListener to the JLabel, but it's not working.
I can add a MouseListener to the JScrollPane, but not the JLabel for some reason. Help!
have you thought about, well, um,... showing us your code?
post your code so that we can help you.
the code is basically:
JPanel scrollPanel = new JPanel();
ScrollLabel scrollLabel = new ScrollLabel();
ScrollPanel.add(scrollLabel);
JScrollPane scrollpane = new JScrollPane(scrollPanel);
class ScrollLabel extends JLabel implements MouseListener{
public void mousePressed(MouseEvent e) {}
public void mouseReleased(MouseEvent e) { }
public void mouseEntered(MouseEvent e) {}
public void mouseExited(MouseEvent e) {}
public void mouseClicked(MouseEvent e) {}
}
try this:
class ScrollLabel extends JLabel implements MouseListener{
public ScrollLabel(){
addMouseListener(this);
}
public void mousePressed(MouseEvent e) {}
public void mouseReleased(MouseEvent e) { }
public void mouseEntered(MouseEvent e) {}
public void mouseExited(MouseEvent e) {}
public void mouseClicked(MouseEvent e) {}
}
perfect. thanks a lot.
Why are you subclassing JLabel just to add a mouselistener? That is not necessary. Why not just add an anonymous listener like so:
JLabel scrollLabel = new JLabel("My ScrollLabel");
scrollLabel.addMouseListener(new MouseListener()
{
public void mouseClicked(MouseEvent arg0)
{
// TODO do stuff here
}
public void mouseEntered(MouseEvent arg0){}
public void mouseExited(MouseEvent arg0){}
public void mousePressed(MouseEvent arg0) {}
public void mouseReleased(MouseEvent arg0) {}
});
Or you can add a non-anonymous inner class type listener:
{
JLabel scrollLabel = new JLabel("My ScrollLabel");
scrollLabel.addMouseListener(new myMouseListener())
}
class myMouseListener implements MouseListener
{
public void mouseClicked(MouseEvent arg0)
{
// TODO do stuff here
}
public void mouseEntered(MouseEvent arg0){}
public void mouseExited(MouseEvent arg0){}
public void mousePressed(MouseEvent arg0) {}
public void mouseReleased(MouseEvent arg0) {}
}