Java 鼠标悬停在边界外时不会更改字符串

Java 鼠标悬停在边界外时不会更改字符串,java,swing,mouseevent,Java,Swing,Mouseevent,在创建鼠标悬停时遇到问题。在我的应用程序中,我有3个小图像,当鼠标位于图像边界内时,一个字符串将绘制该图像的名称。问题是,当鼠标移到图像外部时,绘制的字符串仍然保留,并且仅当我将鼠标移到另一个图像上时才会更改。因此,我认为添加一个else语句是合乎逻辑的做法。因此,对于else语句,它应该将appName\uu更改为”,最后一个图像systemButton\u2]可以按需要工作,但其他两个根本不会在屏幕上绘制字符串 简言之: 注释掉else后,每个图像将触发为鼠标移动到的当前图像绘制适当的名称,

在创建鼠标悬停时遇到问题。在我的应用程序中,我有3个小图像,当鼠标位于图像边界内时,一个字符串将绘制该图像的名称。问题是,当鼠标移到图像外部时,绘制的字符串仍然保留,并且仅当我将鼠标移到另一个图像上时才会更改。因此,我认为添加一个
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();