gpt4 book ai didi

java - 关于 JButton 和 ImageIcon

转载 作者:行者123 更新时间:2023-12-03 01:42:59 25 4
gpt4 key购买 nike

我目前正在读一本java方面的书,目前正在研究swing图形用户界面组件。当我这样做时,我偶然发现了一个代码示例,其中作者以一种非常不寻常的方式在 JButton 上设置图像,如下所示:

Icon bug1 = new ImageIcon( getClass().getResource( "bug1.gif" ) );

为了使上述工作正常,您需要将图像与 .class 文件放在同一文件夹中。有人可以向我解释一下为什么他使用这个特定的代码(据我所知,它一定是反射代码,但话又说回来,我对此不是特别确定)以及是否有一种方法可以让我做到这一点同样的事情,而不会让事情像他那样复杂?

最佳答案

只有当你不理解事情时,事情才会变得复杂。一旦你理解了上面代码的作用,它就会变得非常简单。

getClass() 返回当前对象 (this) 的 Class 对象。使用上述相对路径调用的 getResource() 会在类路径中查找名为 bug1.gif 且与被调用的 Class 对象位于同一包中的文件。因此它会在与包含上述代码的类相同的包中查找 bug1.gif。 getResource() 返回一个 URL。 ImageIcon 构造函数采用 URL 作为参数,从该 URL 加载图像字节,并从这些字节构造一个 ImageIcon。

因此,整个过程只是从类路径中可用的文件创建一个 ImageIcon,与调用此代码的类位于同一包中。这是有道理的:您将给定类使用的图像与该类放在同一个包中,然后发布一个包含应用程序的类和图像的 jar。

通过阅读所有这些方法的 javadoc,您可能已经自己弄清楚了这一切。

关于java - 关于 JButton 和 ImageIcon,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10886604/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com