JButton在Java中悬停效果延迟

时间:2015-02-22 16:19:37

标签: java swing awt jbutton

我想知道这两个问题 1。我正在使用NetBeans我已经创建了一个项目,我已经保存了所有图像" src"文件夹,但当我把图像名称像(image.png)那样,按钮上不会显示任何图像。我附上了工作代码以及下面没有工作代码 -

不工作代码:

 private void loginMouseEntered(java.awt.event.MouseEvent evt) {                                   
    login.setIcon(new ImageIcon("login_button_hover.png"));
}

工作代码

 private void loginMouseEntered(java.awt.event.MouseEvent evt) {                                   
    login.setIcon(new ImageIcon("C:\\Users\\Zeeshan\\Documents\\NetBeansProjects\\Attandence Software\\src\\images\\login_button_hover.png"));
}

2。我想延迟" Hover"图片。 例如:如果我将鼠标指针指向按钮/图像,则悬停图像将缓慢显示并需要1秒才能完全显示。

1 个答案:

答案 0 :(得分:2)

阅读构造函数的the javadoc

  

public ImageIcon(String filename)

     

从指定的文件创建ImageIcon。将使用MediaTracker预先加载图像以监控图像的加载状态。指定的字符串可以是文件名文件路径

(强调我的)

它不希望类路径资源路径作为参数,而是文件路径(即文件系统上文件的路径,而不是应用程序资源的路径)。

如果要使用ClassLoader加载资源,请使用

new ImageIcon(MyClass.class.getResource("/login_button_hover.png"));

此外,您最好加载一次ImageIcon并重复使用,而不是每次鼠标进入按钮时重建它。

关于你的第二点,你可以在每次鼠标进入按钮时启动一个摆动计时器,并让计时器在第二个经过时更改图标。但是你必须每秒处理多次输入,等等。setRolloverIcon()出了什么问题?