我正在用Java开发黑白棋游戏,而我正在做的一件事就是使移动有效,从而使空间的背景颜色变为绿色。我想通过在玩家将鼠标移到该空间上时将其变成绿色来实现此目的,但是当弄清楚从空间中移开鼠标时如何使颜色恢复为默认值时,我遇到了麻烦。这是我的代码,暂时将颜色更改为红色:
gameSpacePanel.addMouseMotionListener(new MouseAdapter() {
public void mouseMoved(MouseEvent e) {
gameSpacePanel.setBackground(Color.RED);
}
public void mouseExited(MouseEvent e) {
gameSpacePanel.setBackground(Color.GRAY);
}
});
我尝试了mouseExited方法,但显然没有达到我的预期。有什么建议吗? mouseMoved方法可以正常工作,我只是不知道在移开鼠标后如何使颜色恢复正常。谢谢!
最佳答案
每次鼠标移动都会触发一个MouseMove
事件。如果我错了,请纠正我,您希望鼠标在进入时更改颜色,并在退出时更改回默认颜色吗?首先MouseMotionListener
没有mouseExited
方法,而是使用MouseListener
,然后替换
void mouseMoved(MouseEvent e)
与
void mouseEntered(MouseEvent e)
它看起来应该像这样:
gameSpacePanel.addMouseListener(new MouseAdapter() {
public void mouseEntered(MouseEvent e) {
gameSpacePanel.setBackground(Color.RED);
}
public void mouseExited(MouseEvent e) {
gameSpacePanel.setBackground(Color.GRAY);
}
});