我想询问JLabel has
是否mouseMotionListener
的默认实施。
我使用addAWTEventListener
方法将Toolkit.getDefaultToolkit()
与MOUSE_MOTION_EVENT_MASK
一起使用,以便运行时它能够知道鼠标是哪个控件。超过jButton, jFrame, jTextfield
一切正常,但是JLabel,JPanel和其他人都没有。
如果我添加JLabel
上面的代码
lblNewLabel_1.addMouseMotionListener(new MouseMotionAdapter() {
@Override
public void mouseMoved(MouseEvent e) {
}
});
它有效。
我必须添加类似于现在没有MouseMotionListener
的所有控件的内容吗?
答案 0 :(得分:0)
public class something implements MouseMotionListener{
public something(){
button.addMouseMotionListener(this);
frame.addMouseMotionListener(this);
panel.addMouseMotionListener(this);
JTextField.addMouseMotionListener(this);
}
//MouseMotionListener methods
@Override
public void mouseDragged(MouseEvent e) {
// TODO Auto-generated method stub
}
@Override
public void mouseMoved(MouseEvent e) {
// TODO Auto-generated method stub
}
}
是的,如果您希望他们采取行动,您必须添加mouseOrMotion侦听器或动作侦听器
当您想要将JLabel添加到窗口时,不要直接添加它,而是首先将JLabel添加到JPanel,然后添加到window.add(面板)。 原因 JLabel是轻量级组件和 JFrame重量级,可能会给听众带来很多问题。
如果这还不够,请告诉我......