gpt4 book ai didi

java - 静态字段 getResource

转载 作者:行者123 更新时间:2023-12-01 09:21:11 27 4
gpt4 key购买 nike

大家。

我是 Java 新手,正在使用 UI 制作培训项目。在培训过程中,我决定从资源加载图标并将其加载移动到不同的类中。并遇到问题。我真的试图自己找到答案,但找不到。代码如下。

主类

package scv.paul;

/**
* Create the application.
*/
public TestApp() {
Logger.getLogger(loggerName).fine("Showing main window");
initialize();
}

/**
* Initialize the contents of the frame.
*/
private void initialize() {
frame = new JFrame();
frame.setTitle("Test App");
**frame.setIconImage( MyImages.appIcn.getImage());**//here try to load icon

并获得异常:

线程“AWT-EventQueue-0”java.lang.ExceptionInInitializerError中出现异常

实用类

package scv.paul;*
import javax.swing.ImageIcon;

public class MyImages {
public static final ImageIcon appIcn = new ImageIcon ( MyImages.class.getResource ( "AppIcon.png" ) );
public static final ImageIcon BtnIcn = new ImageIcon ( MyImages.class.getResource ( "OK.png" ) );
public static final ImageIcon exitIcn = new ImageIcon ( MyImages.class.getResource ( "door.png" ) );
}

图像位于“\bin”文件夹中

我了解到问题出在静态字段的初始化上。但无法理解道理。

如果我调用这样的静态字段,我会收到此错误

public static final String imgPath = System.getProperties().getProperty("user.dir")+"\\img\\";

但是如果我在主类中调用这个静态字段,我就没有错误

    public static final String imgPath = "c://myProjectPath//bin";

而且我找不到如何以良好的方式使用资源。我在哪里可以阅读它?

最佳答案

不要将静态变量用于此类情况。无需保留对图标的引用。只需阅读图标并将其添加到您的按钮即可。

只需在类的构造函数中加载图像(当您创建按钮时)。请参阅 Swing 教程中关于 How to Use Icons 的部分了解更多信息和工作示例。

本教程还将向您展示如何更好地构造代码,以便在事件调度线程上创建 Swing 组件。

保留指向教程的链接,以了解其他 Swing 基础知识。

关于java - 静态字段 getResource,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40158640/

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