Search code examples
javahovermousehover

How to play sound when mouse is hovered on in Java?


For some reason the sound, I add to play when it is hovered over a button or a label won't work properly, it only plays once with the first button or label that is hovered over then never again.

How can I make it so that it plays every time when hovered over?

Clip MouseHover = null;

public Login() 
{
    initComponents();
    try
    {
        AudioInputStream audioInputStream = AudioSystem.getAudioInputStream(new File("src\\Music\\MouseHover.wav").getAbsoluteFile());
        MouseHover = AudioSystem.getClip( );
        MouseHover.open(audioInputStream);
    }
    catch(Exception ex)
    {
        System.out.println(ex);
    }
}

private void ExitMouseClicked(java.awt.event.MouseEvent evt) {                                  
    System.exit(0);
}                                 

private void MinimizeMouseClicked(java.awt.event.MouseEvent evt) {                                      
    this.setState(JFrame.ICONIFIED);      
}                                     

private void ForgotPasswordMouseClicked(java.awt.event.MouseEvent evt) {                                            

}                                           

private void MinimizeMouseEntered(java.awt.event.MouseEvent evt) {                                      
    Minimize.setBackground(new Color(149,165,166));
    MouseHover.loop(0); 

}                                     

private void MinimizeMouseExited(java.awt.event.MouseEvent evt) {                                     
    Minimize.setBackground(new Color(108,122,137));

}                                    

private void ExitMouseEntered(java.awt.event.MouseEvent evt) {                                  
    Exit.setBackground(new Color(149,165,166));
    MouseHover.loop(0);

}

Solution

  • private void MinimizeMouseEntered(java.awt.event.MouseEvent evt) {                                      
        Minimize.setBackground(new Color(149,165,166));
        MouseHover.loop(1); 
    
    }                                     
    
    private void MinimizeMouseExited(java.awt.event.MouseEvent evt) {                                     
        Minimize.setBackground(new Color(108,122,137));
    
    }                                    
    
    private void ExitMouseEntered(java.awt.event.MouseEvent evt) {                                  
        Exit.setBackground(new Color(149,165,166));
        MouseHover.loop(1);
    
    }