gpt4 book ai didi

java - 为什么我的 BlueJ jar 文件加载一些图像,而不加载其他图像?

转载 作者:太空宇宙 更新时间:2023-11-04 11:20:32 25 4
gpt4 key购买 nike

我使用了此站点周围的一些信息来了解如何使用 URL 将图像放入 jar 文件中;我希望能够单独使用。但是当我用 BlueJ 制作 jar 文件时,只显示一些图像。

这是一款二十一点游戏,只显示桌面 Canvas ,而不会显示任何牌。代码如下:

这有效(表格):

public class TableComponent extends JLabel{

BufferedImage table;


public TableComponent(){
URL finalTable = getClass().getResource("blackjackTableCanvas.jpg");
try {
table = ImageIO.read(finalTable);
} catch (IOException e) {
e.printStackTrace();
}

}

@Override
protected void paintComponent(Graphics g) {
Graphics2D g2 = (Graphics2D) g;
super.paintComponent(g2);
g2.drawImage(table, 0, 0, null);
}...}

但这并不(卡片):

public class CardRender2 extends JComponent{

BufferedImage image;
String val;
String suit;
String filename;

public CardRender2(Card card) {
this.val = card.value.face;
this.suit = card.suit.toString();
filename = this.fetchCardFileLabel();

URL cardview = getClass().getResource("\\card deck\\" + filename + ".png");
try {

image = ImageIO.read(cardview);
} catch (IOException e) {
e.printStackTrace();
}

}
public CardRender2(){
this.val = null;
this.suit = null;
filename = "DEALER_FIRST_CARD";

URL cardview = getClass().getResource("\\card deck\\DEALER_FIRST_CARD.png");
try {

image = ImageIO.read(cardview);
} catch (IOException e) {
e.printStackTrace();
}
}

@Override
protected void paintComponent(Graphics g) {
Graphics2D g2 = (Graphics2D) g;
super.paintComponent(g2);
g2.drawImage(image, 0, 0, null);

}...}

我的卡片位于我尝试导入 BlueJ 的目录中的一个文件夹中,而表位于目录根中。那里有 53 张牌(包括庄家隐藏牌),我不想把所有的牌都放在根目录中。我尝试以类似的方式实现它们。我怎样才能做到这一点?

最佳答案

看起来像是从

改变
URL cardview = getClass().getResource("\\card deck\\DEALER_FIRST_CARD.png");

 URL cardview = getClass().getResource("card deck/DEALER_FIRST_CARD.png");

成功了。

关于java - 为什么我的 BlueJ jar 文件加载一些图像,而不加载其他图像?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44960250/

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