我想知道这两个问题
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秒才能完全显示。
答案 0 :(得分:2)
阅读构造函数的the javadoc:
public ImageIcon(String filename)
从指定的文件创建ImageIcon。将使用MediaTracker预先加载图像以监控图像的加载状态。指定的字符串可以是文件名或文件路径。
(强调我的)
它不希望类路径资源路径作为参数,而是文件路径(即文件系统上文件的路径,而不是应用程序资源的路径)。
如果要使用ClassLoader加载资源,请使用
new ImageIcon(MyClass.class.getResource("/login_button_hover.png"));
此外,您最好加载一次ImageIcon并重复使用,而不是每次鼠标进入按钮时重建它。
关于你的第二点,你可以在每次鼠标进入按钮时启动一个摆动计时器,并让计时器在第二个经过时更改图标。但是你必须每秒处理多次输入,等等。setRolloverIcon()
出了什么问题?