setCursor 方法不适用于一个 MouseListener (Java)
setCursor Method not Working on one MouseListener (Java)
我有一个按钮的 MouseListener,基本上说当鼠标进入该按钮附近时,它会将光标更改为手形光标。我所有的鼠标监听器都工作正常,但由于某种原因,这个单一的鼠标监听器不工作。它与所有其他 MouseListeners 相同。
viewAssignments.addMouseListener(new MouseAdapter() {
public void mouseEntered(MouseEvent e) {
// When mouse enters vicinity of a button, sets cursor to hand cursor.
viewAssignments.setCursor(Cursor.getPredefinedCursor(Cursor.HAND_CURSOR));
}
public void mouseExited(MouseEvent e) {
// When mouse exits vicinity of the button, sets cursor to default cursor.
viewAssignments.setCursor(Cursor.getPredefinedCursor(Cursor.DEFAULT_CURSOR));
}
});
这是唯一一个不起作用的:
about.addMouseListener(new MouseAdapter() {
public void mouseEntered(MouseEvent e) {
// When mouse enters vicinity of a button, sets cursor to hand cursor.
about.setCursor(Cursor.getPredefinedCursor(Cursor.HAND_CURSOR));
}
public void mouseExited(MouseEvent e) {
// When mouse exits vicinity of the button, sets cursor to default cursor.
about.setCursor(Cursor.getPredefinedCursor(Cursor.DEFAULT_CURSOR));
}
});
我不确定为什么这个不起作用。
可能无法解决问题,但不要创建自定义侦听器。
而是创建一个可以添加到任何组件的通用侦听器:
MouseListener ml = new MouseAdapter()
{
@Override
public void mouseEntered(MouseEvent e)
{
e.getComponent().setCursor(Cursor.getPredefinedCursor(Cursor.HAND_CURSOR));
}
@Override
public void mouseExited(MouseEvent e)
{
e.getComponent().setCursor(Cursor.getPredefinedCursor(Cursor.DEFAULT_CURSOR));
}
}
然后根据需要添加到每个组件中:
viewAssignments = new JButton(...);
viewAssignments.addMouseListener(ml);
about = new JButton(...);
about.addMouseListener(ml);
我刚刚调用了 setCursor
方法。反正我不需要添加鼠标适配器。谢谢VGR
.
我有一个按钮的 MouseListener,基本上说当鼠标进入该按钮附近时,它会将光标更改为手形光标。我所有的鼠标监听器都工作正常,但由于某种原因,这个单一的鼠标监听器不工作。它与所有其他 MouseListeners 相同。
viewAssignments.addMouseListener(new MouseAdapter() {
public void mouseEntered(MouseEvent e) {
// When mouse enters vicinity of a button, sets cursor to hand cursor.
viewAssignments.setCursor(Cursor.getPredefinedCursor(Cursor.HAND_CURSOR));
}
public void mouseExited(MouseEvent e) {
// When mouse exits vicinity of the button, sets cursor to default cursor.
viewAssignments.setCursor(Cursor.getPredefinedCursor(Cursor.DEFAULT_CURSOR));
}
});
这是唯一一个不起作用的:
about.addMouseListener(new MouseAdapter() {
public void mouseEntered(MouseEvent e) {
// When mouse enters vicinity of a button, sets cursor to hand cursor.
about.setCursor(Cursor.getPredefinedCursor(Cursor.HAND_CURSOR));
}
public void mouseExited(MouseEvent e) {
// When mouse exits vicinity of the button, sets cursor to default cursor.
about.setCursor(Cursor.getPredefinedCursor(Cursor.DEFAULT_CURSOR));
}
});
我不确定为什么这个不起作用。
可能无法解决问题,但不要创建自定义侦听器。
而是创建一个可以添加到任何组件的通用侦听器:
MouseListener ml = new MouseAdapter()
{
@Override
public void mouseEntered(MouseEvent e)
{
e.getComponent().setCursor(Cursor.getPredefinedCursor(Cursor.HAND_CURSOR));
}
@Override
public void mouseExited(MouseEvent e)
{
e.getComponent().setCursor(Cursor.getPredefinedCursor(Cursor.DEFAULT_CURSOR));
}
}
然后根据需要添加到每个组件中:
viewAssignments = new JButton(...);
viewAssignments.addMouseListener(ml);
about = new JButton(...);
about.addMouseListener(ml);
我刚刚调用了 setCursor
方法。反正我不需要添加鼠标适配器。谢谢VGR
.