【发布时间】:2013-03-16 15:27:17
【问题描述】:
我目前正在用 Java 实现一个鼠标悬停脚本,用于一个带有完整图形的按钮(没有 JButton)。这是我的一段代码:
@Override
public void mouseMoved(MouseEvent e){
if (btnExit.getBound().contains(e.getX(), e.getY())){
btnExit.setStatus(BUTTON_STATE.HOVER);
} else {
btnExit.setStatus(BUTTON_STATE.IDLE);
}
System.getInstance().repaint();
}
当我的鼠标移动时,总是会调用 repaint 方法。
问题是 > 对于悬停动作来说这是一个好的实现吗?还是有更好的实现?因为我认为每次鼠标移动都调用 repaint() 计算量很大。
THX b4
【问题讨论】:
-
为什么在鼠标悬停时调用重绘?有什么具体目的吗?
-
如果我不调用它,按钮不会将图像更改为 hoverImage。它将停留在 idleImage....
-
按钮上有图片吗?
-
不,只是一个用 ImageIO 加载并通过paint(Graphics g) 方法绘制的图像
-
为什么要保存当前状态,只在状态真正改变时才调用
repaint()?
标签: java graphics rendering mouseover graphics2d