Java 鼠标悬停在边界外时不会更改字符串
在创建鼠标悬停时遇到问题。在我的应用程序中,我有3个小图像,当鼠标位于图像边界内时,一个字符串将绘制该图像的名称。问题是,当鼠标移到图像外部时,绘制的字符串仍然保留,并且仅当我将鼠标移到另一个图像上时才会更改。因此,我认为添加一个Java 鼠标悬停在边界外时不会更改字符串,java,swing,mouseevent,Java,Swing,Mouseevent,在创建鼠标悬停时遇到问题。在我的应用程序中,我有3个小图像,当鼠标位于图像边界内时,一个字符串将绘制该图像的名称。问题是,当鼠标移到图像外部时,绘制的字符串仍然保留,并且仅当我将鼠标移到另一个图像上时才会更改。因此,我认为添加一个else语句是合乎逻辑的做法。因此,对于else语句,它应该将appName\uu更改为”,最后一个图像systemButton\u2]可以按需要工作,但其他两个根本不会在屏幕上绘制字符串 简言之: 注释掉else后,每个图像将触发为鼠标移动到的当前图像绘制适当的名称,
else
语句是合乎逻辑的做法。因此,对于else语句,它应该将appName\uu
更改为”
,最后一个图像systemButton\u2]
可以按需要工作,但其他两个根本不会在屏幕上绘制字符串
简言之:
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_ = " ";
}
}
@覆盖
public void mouseMoved(MouseEvent事件)
{
超级鼠标移动(事件);
Point mousePosition=event.getPoint();
对于(int i=0;i
解决方案:更改appName后调用
repaint()
_
e、 g
appName_quo;;
对于(int i=0;i
解决方案:更改appName后调用repaint()
_
e、 g
appName_quo;;
对于(int i=0;i
appName_uu变量显示在哪里?更改后是否需要调用repaint()
?更改后是否需要调用repaint()
appName_ = " ";
for (int i = 0; i < systemButton_.length; i++)
{
if (systemButton_[i].getButtonDimesion().contains(mousePosition))
{
appName_ = systemButton_[i];
}
}
repaint();