创建鼠标悬停时遇到问题。在我的应用程序中,我有3个小图像,当鼠标位于图像的边界内时,字符串将绘制该图像的名称。问题是当鼠标移动到图像之外时,绘制的字符串仍然保留,只有当我将鼠标移动到另一个图像上时才会改变。所以我认为添加else
语句是合乎逻辑的事情。因此,使用应将appName_
更改为" "
的else语句,最后一个图像systemButton_[2]
可以根据需要工作,但其他两个图片根本不会在屏幕上绘制字符串。
简而言之:
在else
注释掉的情况下,每个图像都会触发为鼠标移动的当前图像绘制相应的名称,但在鼠标移动时不会将字符串重绘为" "
移动到图像之外。
在else
未注释的情况下,当鼠标位于图像外部时,最后一个图像正常绘制字符串并将字符串返回" "
,但其他图像完全停止工作。
@Override
public void mouseMoved(MouseEvent event)
{
super.mouseMoved(event);
Point mousePosition = event.getPoint();
for (int i = 0; i < systemButton_.length; i++)
{
if (systemButton_[i].getButtonDimesion().contains(mousePosition))
{
switch (i)
{
case 0 :
appName_ = systemButton_[0].getName();
break;
case 1 :
appName_ = systemButton_[1].getName();
break;
case 2 :
appName_ = systemButton_[2].getName();
break;
}
}
else
appName_ = " ";
}
}
答案 0 :(得分:1)
解决方案:更改appName _
后调用repaint()
如,
appName_ = " ";
for (int i = 0; i < systemButton_.length; i++)
{
if (systemButton_[i].getButtonDimesion().contains(mousePosition))
{
appName_ = systemButton_[i];
}
}
repaint();