将鼠标悬停在Java Netbeans中的JButtons上

时间:2017-10-07 18:26:31

标签: java swing jbutton mousehover

现在我的JFrame上有多个按钮,当按钮悬停时,按钮的颜色会发生变化,当我的光标离开按钮后,按钮的颜色会变回它的状态。&#39 ; s原始颜色。现在我将此代码应用于我的所有按钮:

private void btn1MouseEntered(java.awt.event.MouseEvent evt) {                                       
        btn1.setBackground(new Color(236, 252, 250));
    }                                      

    private void btn1MouseExited(java.awt.event.MouseEvent evt) {                                      
        btn1.setBackground(new Color(241, 241, 241));
    }                 

这让我觉得有一点点冗余,是否有可能编写一个更短的代码,按钮会自动检查它是否会徘徊并改变颜色,但在取消后会变回原来的颜色?

1 个答案:

答案 0 :(得分:0)

  

这让我觉得有一点点冗余

您可以轻松创建一个通用侦听器,以便所有按钮共享:

MouseListener ml = new MouseAdapter()
{
    public void mouseEntered(java.awt.event.MouseEvent evt)
    {            
        Component c = evt.getComponent();                   
        c.setBackground(new Color(236, 252, 250));
    }                                      

    public void mouseExited(java.awt.event.MouseEvent evt)
    {                                      
        Component c = evt.getComponent();
        c.setBackground(new Color(241, 241, 241));
    }  
}

然后在您的代码中,您可以将监听器添加到按钮:

btn1.addMouseListener( ml );
btn2.addMouseListener( ml );