- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
这一切都是用 Java 编写的。主要问题是在 Enum 类中我声明了许多不同的枚举。声明每个图像时,都会有一个图像路径告诉构造函数从哪里加载图像。但是当我调用我创建的 enum.getImage() 方法时,它会抛出 ExceptionInInitializerError 。这是枚举类:
import java.awt.Image;
import javax.swing.ImageIcon;
import java.util.HashMap;
public enum Cards {
ACE_HEART(11,1,"acehearts.png"), ACE_SPADE(11,2,"acespades.png"), ACE_CLUB(11,3,"aceclubs.png"), ACE_DIAMOND(11,4,"acediamonds.png"),
TWO_HEART(2,5,"twohearts.png"), TWO_SPADE(2,6,"twospades.png"), TWO_CLUB(2,7,"twoclubs.png"), TWO_DIAMOND(2,8,"twodiamonds.png"),
THREE_HEART(3,9,"threehearts.png"), THREE_SPADE(3,10,"threespades.png"), THREE_CLUB(3,11,"threeclubs.png"), THREE_DIAMOND(3,12,"threediamonds.png"),
FOUR_HEART(4,13,"fourhearts.png"), FOUR_SPADE(4,14,"fourspades.png"), FOUR_CLUB(4,15,"fourclubs.png"), FOUR_DIAMOND(4,16,"fourdiamonds.png"),
FIVE_HEART(5,17,"fivehearts.png"), FIVE_SPADE(5,18,"fivespades.png"), FIVE_CLUB(5,19,"fiveclubs.png"), FIVE_DIAMOND(5,20,"fivediamonds.png"),
SIX_HEART(6,21,"sixhearts.png"), SIX_SPADE(6,22,"sixspades.png"), SIX_CLUB(6,23,"sixclubs.png"), SIX_DIAMOND(6,24,"sixdiamonds.png"),
SEVEN_HEART(7,25,"sevenhearts.png"), SEVEN_SPADE(7,26,"sevenspades.png"), SEVEN_CLUB(7,27,"sevenclubs.png"), SEVEN_DIAMOND(7,28,"sevendiamonds.png"),
EIGHT_HEART(8,29,"eighthearts.png"), EIGHT_SPADE(8,30,"eightspades.png"), EIGHT_CLUB(8,31,"eightclubs.png"), EIGHT_DIAMOND(8,32,"eightdiamonds.png"),
NINE_HEART(9,33,"ninehearts.png"), NINE_SPADE(9,34,"ninespades.png"), NINE_CLUB(9,35,"nineclubs.png"), NINE_DIAMOND(9,36,"ninediamonds.png"),
TEN_HEART(10,37,"tenhearts.png"), TEN_SPADE(10,38,"tenspades.png"), TEN_CLUB(10,39,"tenclubs.png"), TEN_DIAMOND(10,40,"tendiamonds.png"),
JACK_HEART(10,41,"jackhearts.png"), JACK_SPADE(10,42,"jackspades.png"), JACK_CLUB(10,43,"jackclubs.png"), JACK_DIAMOND(10,44,"jackdiamonds.png"),
QUEEN_HEART(10,45,"queenhearts.png"), QUEEN_SPADE(10,46,"queenspades.png"), QUEEN_CLUB(10,47,"queenclubs.png"), QUEEN_DIAMOND(10,48,"queendiamonds.png"),
KING_HEART(10,49,"kinghearts.png"), KING_SPADE(10,50,"kingspades.png"), KING_CLUB(10, 51, "kingclubs.png"), KING_DIAMOND(10, 52, "kingdiamonds.png");
int value,id;
Image image;
private HashMap<Integer,Cards> cardmap = new HashMap<Integer,Cards>();
public void setMap() {
for(Cards c : Cards.values()) {
cardmap.put(c.getValue(),c);
}
}
private Cards(int value, int id, String imagepath) {
this.value = value;
this.id = id;
ImageIcon i = new ImageIcon(this.getClass().getResource("img/" + imagepath));
Image image = i.getImage();
this.image = image;
}
public Image getImage() {
return image;
}
public int getId() {
return id;
}
public int getValue() {
return value;
}
public Cards getEnum(int id) {
return cardmap.get(id);
}
}
如果您对错误有任何想法(不,我不是要求代码),您能解释一下我做错了什么吗?
编辑:完整堆栈跟踪:
Exception in thread "AWT-EventQueue-0" java.lang.ExceptionInInitializerError
at blackjack.Board.paint(Board.java:22)
at javax.swing.JComponent.paintChildren(JComponent.java:870)
at javax.swing.JComponent.paint(JComponent.java:1046)
at javax.swing.JComponent.paintChildren(JComponent.java:870)
at javax.swing.JComponent.paint(JComponent.java:1046)
at javax.swing.JLayeredPane.paint(JLayeredPane.java:567)
at javax.swing.JComponent.paintChildren(JComponent.java:870)
at javax.swing.JComponent.paintToOffscreen(JComponent.java:5139)
at javax.swing.RepaintManager$PaintManager.paintDoubleBuffered(RepaintManager.java:1523)
at javax.swing.RepaintManager$PaintManager.paint(RepaintManager.java:1454)
at javax.swing.RepaintManager.paint(RepaintManager.java:1257)
at javax.swing.JComponent.paint(JComponent.java:1023)
at java.awt.GraphicsCallback$PaintCallback.run(GraphicsCallback.java:21)
at sun.awt.SunGraphicsCallback.runOneComponent(SunGraphicsCallback.java:60)
at sun.awt.SunGraphicsCallback.runComponents(SunGraphicsCallback.java:97)
at java.awt.Container.paint(Container.java:1778)
at java.awt.Window.paint(Window.java:3390)
at javax.swing.RepaintManager$3.run(RepaintManager.java:825)
at javax.swing.RepaintManager$3.run(RepaintManager.java:802)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:87)
at javax.swing.RepaintManager.paintDirtyRegions(RepaintManager.java:802)
at javax.swing.RepaintManager.paintDirtyRegions(RepaintManager.java:745)
at javax.swing.RepaintManager.prePaintDirtyRegions(RepaintManager.java:725)
at javax.swing.RepaintManager.access$1000(RepaintManager.java:46)
at javax.swing.RepaintManager$ProcessingRunnable.run(RepaintManager.java:1668)
at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:209)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:672)
at java.awt.EventQueue.access$400(EventQueue.java:81)
at java.awt.EventQueue$2.run(EventQueue.java:633)
at java.awt.EventQueue$2.run(EventQueue.java:631)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:87)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:642)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:269)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:184)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:174)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:169)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:161)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:122)
Caused by: java.lang.NullPointerException
at javax.swing.ImageIcon.<init>(ImageIcon.java:181)
at blackjack.Cards.<init>(Cards.java:26)
at blackjack.Cards.<clinit>(Cards.java:7)
... 40 more
编辑2:软件包的具体设置方式:
套餐二十一点。包内:Blackjack 类、Board 类、Cards 类、带有图像的 img 文件夹。
最佳答案
您的enum
无法正确初始化,很可能是因为它在构造函数中抛出NullPointerException
。
ImageIcon i = new ImageIcon(this.getClass().getResource("img/" + imagepath));
通过上述语句,您将在与 enum
相同的包中查找 img/imagepath
。在路径前加上 /
前缀
ImageIcon i = new ImageIcon(this.getClass().getResource("/img/" + imagepath));
因此它是相对于类路径的根的,正如我假设您的文件(img
包)一样。
如果 /img
只是一个文件夹,则需要将其添加到类路径中。如果您使用的是 Eclipse,请将其拖放到 src
文件夹中。
关于java - 加载图像时枚举抛出错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56633740/
我已经使用 vue-cli 两个星期了,直到今天一切正常。我在本地建立这个项目。 https://drive.google.com/open?id=0BwGw1zyyKjW7S3RYWXRaX24tQ
您好,我正在尝试使用 python 库 pytesseract 从图像中提取文本。请找到代码: from PIL import Image from pytesseract import image_
我的错误 /usr/bin/ld: errno: TLS definition in /lib/libc.so.6 section .tbss mismatches non-TLS reference
我已经训练了一个模型,我正在尝试使用 predict函数但它返回以下错误。 Error in contrasts<-(*tmp*, value = contr.funs[1 + isOF[nn]])
根据Microsoft DataConnectors的信息我想通过 this ODBC driver 创建一个从 PowerBi 到 PostgreSQL 的连接器使用直接查询。我重用了 Micros
我已经为 SoundManagement 创建了一个包,其中有一个扩展 MediaPlayer 的类。我希望全局控制这个变量。这是我的代码: package soundmanagement; impo
我在Heroku上部署了一个应用程序。我正在使用免费服务。 我经常收到以下错误消息。 PG::Error: ERROR: out of memory 如果刷新浏览器,就可以了。但是随后,它又随机发生
我正在运行 LAMP 服务器,这个 .htaccess 给我一个 500 错误。其作用是过滤关键字并重定向到相应的域名。 Options +FollowSymLinks RewriteEngine
我有两个驱动器 A 和 B。使用 python 脚本,我在“A”驱动器中创建一些文件,并运行 powerscript,该脚本以 1 秒的间隔将驱动器 A 中的所有文件复制到驱动器 B。 我在 powe
下面的函数一直返回这个错误信息。我认为可能是 double_precision 字段类型导致了这种情况,我尝试使用 CAST,但要么不是这样,要么我没有做对...帮助? 这是错误: ERROR: i
这个问题已经有答案了: Syntax error due to using a reserved word as a table or column name in MySQL (1 个回答) 已关闭
我的数据库有这个小问题。 我创建了一个表“articoli”,其中包含商品的品牌、型号和价格。 每篇文章都由一个 id (ID_ARTICOLO)` 定义,它是一个自动递增字段。 好吧,现在当我尝试插
我是新来的。我目前正在 DeVry 在线学习中级 C++ 编程。我们正在使用 C++ Primer Plus 这本书,到目前为止我一直做得很好。我的老师最近向我们扔了一个曲线球。我目前的任务是这样的:
这个问题在这里已经有了答案: What is an undefined reference/unresolved external symbol error and how do I fix it?
我的网站中有一段代码有问题;此错误仅发生在 Internet Explorer 7 中。 我没有在这里发布我所有的 HTML/CSS 标记,而是发布了网站的一个版本 here . 如您所见,我在列中有
如果尝试在 USB 设备上构建 node.js 应用程序时在我的树莓派上使用 npm 时遇到一些问题。 package.json 看起来像这样: { "name" : "node-todo",
在 Python 中,您有 None单例,在某些情况下表现得很奇怪: >>> a = None >>> type(a) >>> isinstance(a,None) Traceback (most
这是我的 build.gradle (Module:app) 文件: apply plugin: 'com.android.application' android { compileSdkV
我是 android 的新手,我的项目刚才编译和运行正常,但在我尝试实现抽屉导航后,它给了我这个错误 FAILURE: Build failed with an exception. What wen
谁能解释一下?我想我正在做一些非常愚蠢的事情,并且急切地等待着启蒙。 我得到这个输出: phpversion() == 7.2.25-1+0~20191128.32+debian8~1.gbp108
我是一名优秀的程序员,十分优秀!